{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:10:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db72b729-5aa0-4664-80dc-36075cb43ac2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:15:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f509ea5-0da7-4f8e-80ae-0ff35f284667","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:20:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3c277bf-dec7-44f1-b494-48defcdeceb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:25:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"446fe923-bec9-4d76-8f29-069e44248b61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:30:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ada5dd61-a4a7-41d9-9741-75aa71cfd378","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:35:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba6d0347-841c-41b8-aeff-1e39b850dafb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:40:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a27543ab-d763-4ac4-b118-ce4a57b7b10c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:45:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebad99fc-0ed2-4e46-9c22-a639cc1c40a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:50:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96678cdd-e897-4932-b102-4cdade1b1c6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:55:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec5524fd-629d-4e97-80a6-f4cdabdb850a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:00:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ffa20555-542c-447e-a38e-f3a31cd8aed2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31f3aab9-13f0-4434-bda2-312e172c1910","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:10:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14ba5f2d-841c-41c5-a84d-e5fcfdf0eb2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:15:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05553133-07b1-4f20-8793-9731e1324578","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:20:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"937786cd-36e9-4128-83cb-8f8ed7dad933","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:25:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dd3faa6-8dc2-44f7-94d3-ec832d0730cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:30:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-08 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-08 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:30:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef1736d3-95f8-46a0-9d2f-6179575c01a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:35:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99f75fd2-16ba-4acd-8eec-c97b0c3dda0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:39:00"}
{"durationMs":1.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bbc3c3b-5098-4c81-ac63-e1a2e1c489e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:39:39","userId":null}
{"durationMs":3.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"577833b9-8986-4d48-8b9d-5aa09e48ac71","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:39:40","userId":null}
{"durationMs":2.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b10847c4-3ece-4c70-926f-31ca5d0dc36a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:39:40","userId":null}
{"durationMs":2.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3531ea1f-7a69-4a03-b8d4-0a54ce2c9e87","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:39:40","userId":null}
{"durationMs":2.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"132a252e-3c27-472b-b4ab-6164a8da1b75","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:39:40","userId":null}
{"durationMs":2.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"abb47803-75f7-4f39-b3de-c4483e5f939b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:39:40","userId":null}
{"durationMs":44.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"27960a86-f770-4454-8309-5ac6b42ecb49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:39:44","userId":null}
{"durationMs":130.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"ae109703-d893-4eeb-b307-4e02638885ef","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:39:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":110.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"5bf3d089-5298-4b49-879c-fc786f7ec00b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:39:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":326.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"61b21045-8d91-46d0-a58d-f351a0929246","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:39:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":335.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bc02bbe6-2b8d-434c-bf1f-86292bb234f0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:39:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":271.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"05ddcf4a-2937-41ea-9e1b-5f9879025d7f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:39:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":4018,"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-08 09:39: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":401,"url":"/communication/notifications/inbox-count"},"durationMs":4069.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-08 09:39: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":401,"url":"/communication/notifications/unread-count"},"durationMs":4114.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-08 09:39: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":401,"url":"/school/billing"},"durationMs":4130.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-08 09:39: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":401,"url":"/communication/notifications"},"durationMs":4154.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-08 09:39: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/billing"},"durationMs":717.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-08 09:39: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":736.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-08 09:39: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/inbox-count"},"durationMs":747.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-08 09:39: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":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-08 09:39: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":1375.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-08 09:39: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":16.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6498f88-921b-4777-a21c-0ba4bb62968c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:39:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9abf9e04-e6e8-40ab-8262-d75a6074f854","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:39:55","userId":null}
{"durationMs":42.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8330c5b3-453f-4726-8968-bb881711dfa3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:39:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":106.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"82957776-3ca4-400c-a411-d1f1318aa2be","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:39:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"cfd0844e-c99f-40aa-b97f-d143645e37e8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:39:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":166.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9ac7902d-e7d4-4e2b-96ed-32378c8d5d00","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:39:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":159.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"faaf7b51-c747-49db-82b6-e5efa26a252e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:39:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":135.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ae9dab73-1e45-422f-b554-476a69734d53","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:39:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":369.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-08 09:39: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":"/academics/streams"},"durationMs":453.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-08 09:39: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":"/academics/classes"},"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-08 09:39: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":614.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-08 09:39: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":624.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-08 09:39: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":638.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-08 09:39: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.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f8cd44ce-b16e-44d0-a18f-49575ca50e17","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:39:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:40:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd24d1a4-9a2a-4a26-85d7-f9ce9bcc91f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:45:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"594b816f-2436-493f-8ed1-cd90237d0248","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:50:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4adc172-ca0e-4d3e-b046-dcb773c1a164","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 09:55:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7dd6fb3-5c67-401f-bdc3-ceb7f81f367f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 09:59:00"}
{"durationMs":2.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"2fd85556-2420-4e5b-bef9-a94d95705202","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:24","userId":null}
{"durationMs":3.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ad95d3d2-4508-4047-b8f1-4a62bd081ffc","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":3.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"6afd786f-5f99-43fe-ba09-0f1901655a32","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":1.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"c53e22fc-af03-4473-a478-6807fee82edc","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":1.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"90f8e54e-84a3-4a6f-aa5b-ff37c3719d55","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":1.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"72b5cf9e-3bee-4e8d-822a-812597c94a0d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":1.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"710a1151-4ad5-494c-b89f-7c4aa3afdc19","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":2.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f90a24e0-caa1-490b-9ede-2d49439ff332","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":2.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"4975f5d1-c0ef-47ec-9649-8604ac83ce93","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":1.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"7c1d001d-be05-4d28-b323-fca49879f415","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":1.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c02cd88a-a8c3-443d-8797-ecd6fc05cb02","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","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-08 09:59:25","url":"/api/v1/auth/refresh-token"}
{"durationMs":7.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"42f43641-4578-4bfc-b9a2-249933351f92","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":38.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"619e9ee5-5bcd-4fa0-9599-f681ed7d8288","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:59:25","userId":null}
{"durationMs":61.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ee0fc5cd-f4e6-4259-9925-33d7f6a64d72","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:59:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":68.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2591ef7a-aae8-487b-8cc4-f2728f07724c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:59:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"2a469fd2-30ff-40fc-8b4f-b93cbe742703","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:59:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":41.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"cf69518c-17a2-4486-a817-df54fe3def5e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:59:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"56c4f706-a633-4565-82d4-5ed12b1d3f92","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 09:59:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/academics/streams"},"durationMs":2841.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-08 09:59: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":null}
{"data":{"method":"GET","status":401,"url":"/academics/classes"},"durationMs":2873.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-08 09:59: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":3110.3,"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-08 09:59: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":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":3168.4,"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-08 09:59: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":3174.3,"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-08 09:59: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":3176.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-08 09:59: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":null}
{"data":{"from":"/dashboard/attendance","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-08 09:59: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":null}
{"durationMs":4.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7b665ee-4e3c-4d10-8246-881ff883c926","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:59:27","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/billing"},"durationMs":2852.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-08 09:59: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":401,"url":"/communication/notifications/inbox-count"},"durationMs":2878.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-08 09:59: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":401,"url":"/communication/notifications"},"durationMs":2898.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-08 09:59: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":401,"url":"/school/enabled-modules"},"durationMs":2915.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-08 09:59: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":401,"url":"/communication/notifications/unread-count"},"durationMs":2916.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-08 09:59: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":491.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-08 09:59: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"},"durationMs":501.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-08 09:59: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":"/school/enabled-modules"},"durationMs":527.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-08 09:59: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":"/school/billing"},"durationMs":559.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-08 09:59: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":567.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-08 09:59: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":10.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"54c72145-73b0-4a5b-9c49-69bf60434541","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:59:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":0.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4df7011-c800-4c35-a171-a64d544521a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 09:59:28","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:00:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d7812de-7919-448b-b21b-9cc78f862d1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de506580-8912-4978-8791-2fb234d5e452","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:10:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2111c39-1056-4e30-bef8-7a412cbcf5d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:15:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"339d8acc-87cc-41c9-8968-af02c18cee15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:20:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11039ee2-3ae8-422b-8659-6f957c502559","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:25:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5c8b637-d6eb-41bc-99a4-4ccb5bf54675","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:30:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf6ea40c-9f1d-44ea-a091-42cb2cb9538a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:35:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77270bfd-a05b-49b0-99d6-d78bc56a0b3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:40:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49e8a90f-e9a8-4541-9a32-231a95e64565","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7463ef8f-b4c6-447c-9764-e99e56d3dc3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:50:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b56c610-d3cf-4cd4-83f7-0393636e2e10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 10:55:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f8f2073-4177-4913-8e16-1d812b302d7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:00:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f8ccfbd-c28f-46c7-aa30-9290e25a7155","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05e5aca1-40fc-4b2c-9d0c-be83c59d97bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:10:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53640c60-9622-4261-a0c4-9001ad73acd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:15:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ffbc153-0577-482c-af9a-b46b41dc96bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:20:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c87b0dfb-7e1d-4814-b4e9-53a8291ff548","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:25:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26bac81c-31a3-4438-baae-9aa18fe2f1c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:30:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3a6808e-ba2b-472e-8798-1085af0811be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:35:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"893779bf-f3b9-4f1b-9362-029d6425fce0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:40:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d50f9868-3516-45ba-ac23-2b1fddf92fc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:45:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8efcd687-302b-453c-9229-0df246f9af3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:50:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a2feb5d-99bb-4998-874a-8910ef2185e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:54:00"}
{"durationMs":3.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"144793d5-c3a4-4bc2-9cf7-a9a1f575e824","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 11:54:08","userId":null}
{"durationMs":1.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"2d2ddbf3-64d8-4c37-b5a5-d260f0492f08","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 11:54:08","userId":null}
{"durationMs":0.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"474ffd23-f88e-4c98-b4d5-6271e59160e6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 11:54:08","userId":null}
{"durationMs":0.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"93dec547-d035-4a2b-8d61-b246e9ff68a1","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 11:54:08","userId":null}
{"durationMs":0.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"82a81929-5f7e-48fd-939d-91730d346e1a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 11:54:08","userId":null}
{"durationMs":74.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"e871dd9b-4f04-44da-97ed-9ca5d7b69e47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:54:08","userId":null}
{"durationMs":183.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b8f6daf7-84e8-41b7-a8dd-f71efb8fc7de","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 11:54:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":282.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"eac535c2-f525-4b94-b89a-fbab363ec541","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:54:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":294.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4c3eb486-b31b-42fe-ae0b-bd0755d8bd93","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 11:54:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":300.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"6b426c1f-b21c-4f6a-80b0-9185428bef1a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 11:54:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":301.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f4abe024-b6e9-4955-839a-afcf373b2909","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 11:54:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1227.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-08 11:54: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":401,"url":"/school/enabled-modules"},"durationMs":1247.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-08 11:54: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":401,"url":"/communication/notifications/unread-count"},"durationMs":1237.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-08 11:54: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":401,"url":"/school/billing"},"durationMs":1239.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-08 11:54: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":401,"url":"/communication/notifications"},"durationMs":1241.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-08 11:54: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/enabled-modules"},"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-08 11:54: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/billing"},"durationMs":642.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-08 11:54: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":651.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-08 11:54: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"},"durationMs":657.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-08 11:54: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/inbox-count"},"durationMs":660.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-08 11:54: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":18.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1415e47f-b722-4726-a427-ceb9c82620ac","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:54:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 11:55:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc7a22a9-0ae4-481c-b4c4-44f673813040","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:00:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52d62f66-20b6-493d-933c-fc7a2337bc38","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:05:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e3466b5-1481-45a2-a89d-304fdc7b90e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:10:00","totalConnections":1}
{"durationMs":2.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66fe7dca-354a-487d-aa24-b80617384904","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:14:00"}
{"durationMs":3.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c7482078-5b49-4b2f-a77d-470eca19683b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 12:14:46","userId":null}
{"durationMs":2.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"a76cf160-96a5-42ba-beb8-df994d2959fc","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 12:14:46","userId":null}
{"durationMs":1.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"c699c14c-5d03-41f4-aa89-314cbfd55131","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 12:14:46","userId":null}
{"durationMs":0.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"03d1ce5f-2933-4f07-ab9e-a23cfa0a5303","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 12:14:46","userId":null}
{"durationMs":0.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cac3063b-67fb-4a2c-9805-8601ed055b3b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 12:14:46","userId":null}
{"durationMs":23.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"4c6728d9-6074-4320-b53e-20e07784d9c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:14:46","userId":null}
{"durationMs":69.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"31d0d11e-5e33-490b-a621-9eb6a5b513f1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:14:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":2054.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-08 12:14: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":401,"url":"/school/enabled-modules"},"durationMs":2073.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-08 12:14: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":401,"url":"/school/billing"},"durationMs":2064,"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-08 12:14: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":401,"url":"/communication/notifications"},"durationMs":2065.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-08 12:14: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":401,"url":"/communication/notifications/unread-count"},"durationMs":2068.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-08 12:14: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":23.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0eded2ff-b68e-460f-9d19-b32b0f8fda3f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:14:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":49.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"44c0793a-7dd0-4f04-9f34-52d6e1a4a7c8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 12:14:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":108.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"236278cb-4026-41ca-b41c-cb5c982793b3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 12:14:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":101.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d2ef02d9-6366-4f46-8229-4fa9c6736698","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 12:14:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":118.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"15ddc5f0-b464-4b53-b02b-145c0f79a8d3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 12:14:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":910.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-08 12:14: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":"/school/enabled-modules"},"durationMs":1070.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-08 12:14: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":1074.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-08 12:14: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":1078,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-08 12:14: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":1081.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-08 12:14: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":19.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2fde3c0f-4c51-4e9d-ae42-84417d8dd547","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:14:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:15:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"940993d6-aac9-44fb-a041-beae5c511b0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:20:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc17b049-3d02-4d05-af6e-6ff86045b34d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:25:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:25:01","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a359fe6-529a-42e6-9035-8cd89960bd64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:30:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91182687-bcef-4e45-a13a-01735aebe7a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:35:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df145ca1-2dcd-4a8f-b6f4-d1acfbbc00a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:40:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5771c06-0696-43ee-ad17-957bdc84157a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6d35ed2-1c13-4076-b3d1-97d4bc2ec71c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e85beb6-88b4-4365-8196-ced1c2973985","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 12:55:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41bc0bd3-6f1d-44ea-961f-0757e7d37b41","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:00:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2160fa0-036d-4c1e-8dec-370419ac671f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:04:00"}
{"durationMs":3.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"9cc34a3d-ae5c-4b8b-aacb-9df1d0213280","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 13:04:45","userId":null}
{"durationMs":33.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"e66a1fd7-db28-4aaf-a28e-e67b3ab29aee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:04:45","userId":null}
{"durationMs":51.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"298cf4e0-db21-4478-bc97-f38caeecf228","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 13:04:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1137.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-08 13:04: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":"/school/enabled-modules"},"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-08 13:04: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.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fb098606-4a7b-4b12-b423-17ab79693a07","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:04:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:05:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a968c984-8fdb-42c4-87f2-f2a1a169e5f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:10:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4f56d14-b40d-4ab8-a930-f52abf342eff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:15:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb7b9d9d-b462-4599-a9e1-486134db09b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:20:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad9ef7a6-1abe-4ba7-82f4-f8cba4d54b0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:25:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b57a71c-290a-4a4b-bf90-ee9d932d85e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:30:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a75d32f8-4876-495c-8337-1a8674ac765f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:35:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fc8b81c-a490-4b78-b5d6-d25652f9b2ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:40:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8684c94c-d3cb-4d4d-b186-99b650976bf8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:45:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac5584e2-2853-4fce-98bc-a10de2cbe122","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:49:01"}
{"durationMs":3.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"1e27b35c-d993-4a42-bd29-28759bda3d3a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 13:49:41","userId":null}
{"durationMs":1039.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"7fdfb980-b56a-4f5c-b82a-521b8c8c67aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:49:43","userId":null}
{"durationMs":57.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"fbd35f5f-00a6-4e71-bd5f-debaf69559c8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 13:49:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1643.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-08 13:49: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":9.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"017efb07-798e-4f74-839b-5d8aa4c4e606","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:49:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":357.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-08 13:49: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.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6fdd8ab6-3b2b-4c79-929c-5d00e34dfbde","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:49:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:50:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0491a2b6-4d10-4daa-a8ee-490687dde1e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 13:55:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8505af94-5de9-4430-bec3-d7c1ba1928e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:00:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"389e9ee7-725a-4f89-b62e-b6a194a58d14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b6ecaec-0d21-47b3-83aa-fdc48490f4ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:10:00"}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9aea88d8-70ac-40cd-8c53-dc6f9f6de5bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:15:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f249819-f2b5-4cd8-b3c2-d20d58f8a9b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:20:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab9c0761-3ab0-464f-858e-81a288ed399a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:25:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16675b2b-a897-43a7-91df-8e28b071b591","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:30:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a688946d-1220-4730-85f0-4943956f677d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:35:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cda6d036-7ca9-4804-ba1c-ace51d7375b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:40:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bb056eb-57c9-4d13-ac84-c5787495beff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:45:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6a43d5b-e40b-4e72-9f20-000071f0f10a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:50:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2d06c36-c0be-4dd9-886d-b5a4fd1a517a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 14:55:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1ed6b5f-23b8-407d-85b3-d5c105dabcf4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:00:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01f5a558-11d7-4bef-bb4f-d064b2127a31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:05:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6404d82e-50aa-4ac3-a759-8a7857e48238","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:10:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c34c76e-1cb9-4e87-b402-c5edb15fa40e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:14:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:15:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9730786-2273-4a25-998d-6d7d7b23bf7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:20:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3827e882-db76-400e-aef1-18d0b9fcab44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:25:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe90ef62-5031-4819-8905-188f06fe6238","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:30:01"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05b907c0-b3d3-48e5-a27d-51c30acb17b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:35:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ada2998a-642b-4df3-a766-ab31babd897b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:40:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe9e02b4-37ff-4c84-af7e-15ca8a81eedb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:45:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15d621d1-58b0-456f-8824-3d08f4c7619c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:50:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75b7671a-28d5-409d-912a-8ddf5b5a3352","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 15:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 15:55:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"528e7829-16d3-4c8d-ad7a-411905956b8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 15:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:56:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:00:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf1dff66-7739-466e-be32-0feda4a8c17e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:05:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab7f5e69-cb52-4e10-9908-3c0f1584e6cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:10:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c4eb275-e171-4750-9552-dc410f3de8e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:15:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8a239b0-511a-475b-a870-435243f766ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:20:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb0b4ef4-7a7d-4c6d-9551-ed7094a15d3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:25:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4431bc10-c553-4d86-8012-ad48fe0f0905","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:30:01","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddd1d5f2-be2a-4acb-8202-12e69031f15c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:35:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab506d28-1ac8-4034-a0eb-b81a1eba7807","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:40:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43c38a62-f39d-4610-99cb-660c1aace50e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:45:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5bb9342d-4ad9-4ebb-b25f-a08b762722b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:50:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c365ccc-96fb-4d2b-88d9-af7fa4e47e21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 16:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 16:55:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a45654f7-e95c-49f4-a60d-b95579d14afe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:00:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"444faf45-ff75-414a-8879-cee3e7b5c5ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:04:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:05:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9b0da94-f8b8-491d-85b7-cbcbba0a7491","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:10:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8790b40f-e49c-42c1-bee3-698019d640b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:15:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d53e355b-e083-4fd2-905a-c7e5108caac2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:20:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50141ee0-8280-4c70-b5d8-6342d7631e2a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"776200be-e546-46ca-82cd-708639418162","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:30:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa9e6706-6282-4554-b961-fa93b91d4317","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:35:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f292064-13b3-4962-9093-d20447e5a525","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:40:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58e8bec3-d118-47e0-b159-f97ed2c6533d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:45:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"864f4700-be4e-4ea7-8746-4406309353d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"895602a8-0cd5-4b49-9dfb-6ae8da856a4d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:55:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 17:55:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 17:55:01","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c120ea49-7265-4772-a297-fc2d4b860ed0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:00:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3bd887c5-8f53-4454-bc00-fd491bb739e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:05:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4ed035c8-5173-4252-a4f0-50a5dfece2a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:10:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"819e286e-30f0-430d-baa0-9de407007273","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:15:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80da3cda-867b-45c6-a947-ffe1e31fd630","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:20:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b842fbb9-1243-4ece-8736-0a02102b3463","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:25:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a2bfbea-7546-4da2-b513-3c2aecd49c43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:30:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d7fd83f-39eb-42d7-a461-40109e9db330","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:35:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"151bdee1-fbe9-4648-850b-251f3cce98a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:40:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83f2733c-e906-45d9-8e6c-43412db78264","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:45:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"288a4c74-59ba-427d-889e-c93ef1ba641f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:50:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f2870d5-1132-4727-bb3f-39c740321756","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:55:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75837b7e-abe2-4ffc-ad66-d4ca9e09217d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 18:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:00:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"456642b5-5b66-44f7-8b12-da76c3a312a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:05:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62015c4b-d1f0-4d82-b5b8-bc3cf0c0c210","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf8e834b-d4cd-444b-8a0a-1811989de15b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:15:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a05688dc-2ef3-46f6-8447-d28f7f35392d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:20:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a57ae62-da37-4039-9cd9-61dafdf18ee1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:25:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c965190d-7b20-4cda-9eb0-8fd9c3b209e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:30:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e43d04b-2603-419e-b13c-527cf4a6b7d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f250911e-f2dd-441a-b06d-f18350918895","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:40:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f585d0e5-1ecf-41c5-94d9-173dfe2b2f25","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"618f1328-028a-4526-bd94-93b19cdc70c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:50:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f59bac10-7c91-4f6a-b835-d799499bcc79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 19:55:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85fce2ce-64a2-4f98-8f2e-8316762b03a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 19:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:00:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"615aeba2-6ab2-4e4b-b1d8-51aa3ed162a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:05:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85d92088-93ed-4575-905f-911a1c672787","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce613046-ab1b-46ef-8f61-db553f18a2ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:15:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8506562-4bc2-407f-ae8e-07bb618af8b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:20:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb80a584-3d97-432f-bedf-bf5227483134","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:25:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f10387b-92ef-4177-9895-d73795ecb7f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:30:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa94cd50-83d3-40a7-a97a-0d66ac8abec4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:35:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d14f9b0-d5bc-4edb-af72-2b48b5ade682","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:40:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:40:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:40:01","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bdfdeca-d0d7-46f8-b79c-b03d474b1e7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:45:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ec94809-20df-4d15-af8e-b80e6c8aac29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:50:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82e6df99-e083-443f-8212-e8a5e424013c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 20:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 20:55:00","totalConnections":1}
{"durationMs":1.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7d7e9be-a129-42ab-8dfa-6577ed50cadb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:58:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:00:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"915133ca-4699-4047-a0bc-0a7aeee2aee1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1bc8cfc4-318b-4877-857e-fcebd9816cad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"493eb18e-371d-40d5-a426-29d221f7810b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:15:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9c42a87-72d4-4136-ae73-63e0be742dfe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:20:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d1b8f27-4726-45f4-bd2d-fd00c94dc6b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:20:02","userId":null}
{"durationMs":2.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0228c6e8-3db7-4078-b05e-230e7cd175f3","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-08 21:20:04","userId":null}
{"durationMs":40.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"697d3c1c-df39-4307-8969-b11d8db641f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:20:04","userId":null}
{"durationMs":77.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"d4f2b562-baeb-45d3-b4d5-ebaa479c9286","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-08 21:20:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":2495.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-08 21:20: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":394.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-08 21:20: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":9.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4f2df45a-f97c-45e4-9016-3873425da2cb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:20:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:25:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd65955c-aa29-46e8-b8b2-91f8ebf54906","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:30:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1802b7b7-f965-4b19-a6bf-487a85339a9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:35:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80f28629-8db5-437b-9f19-92a63f0132b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:40:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c380442-99ae-4795-9176-678b4d883005","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:45:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7fbb46e8-32bb-4c88-93e8-5231b28bfc5d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:50:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0818a933-4687-4da3-9fde-86c43a9ebb57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 21:55:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a91a57c-d11d-4e71-9e55-8c98f706c4f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:00:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06de1b91-099a-4397-a008-3e24f0bdf47b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:05:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a55049d9-12d9-4d1b-81d0-0095149d781f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:10:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1441070e-1699-497c-8cd1-dbf2aaaf29d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:15:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"500dd7aa-0b75-47c6-836e-a3566331a8a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:20:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f2abe0b-a597-4c0c-a8bb-8018b6ee2603","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:25:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:25:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:25:01","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee52f8c9-f67f-413f-bf1a-7820040b0f48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:30:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af4e63ae-e07f-40e2-9b7d-e5fc1b6bbc7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:35:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26201b91-9f2b-47d4-96c1-f1ea62d89fa7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64cff247-5d4d-44cc-8802-c8976c0dde78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:45:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74fb48db-4b96-4b04-abb5-6217a406ce20","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:50:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9868c43-b168-41f4-a4f5-3ac9c14c7714","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 22:55:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"068027f6-e2ce-40af-8a85-e9363004f1f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:00:01","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d887ed1-7c8a-470f-877c-c8c3f03f2f11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:05:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8add3ec6-d2cb-4a27-9a89-fa9070809c4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:10:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"126bfafb-a177-404e-9a00-e0d01a59e5c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:15:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fa57dd8-6596-4304-a433-fb84c6faeda7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:20:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f318551-1cdf-414f-b3b7-0fe42752b107","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:25:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81f54668-0673-4393-ab7a-1a7f02a69472","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:30:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11412689-d49c-4e6c-b1f3-81eb46e8d689","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:35:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47b6ff69-ce8d-4395-bb8f-031f909bb877","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cb1ac18-5b06-4592-bb3b-c21268d9b278","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:45:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8583a44e-f419-4fcd-8634-3ccf88ea3a54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2036e551-441e-4d99-9272-9c4c06dfd6aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 23:55:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98051e53-6d0e-466b-b982-0997a849ba49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"209928af-2221-454e-b94d-6aa27d88967a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:05:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab9b87de-e417-4b84-a5bc-e58cec334288","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:10:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db2b2b10-78ad-4aaf-a9ea-fbb3d65d11fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:15:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e4cf460-9451-4884-bde1-36939e9b8b5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:20:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f74f7a44-2ed2-4b6e-b581-dde743a09c2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:25:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31743613-b9f9-4818-a398-42b7d2ec8239","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:30:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b1d6bea-8d13-47eb-a2eb-0cccfc6af82d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:35:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be91b9a6-044f-4558-aca3-3c26d8095c19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bed38f57-a59d-4db8-a0c7-947018111463","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:45:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"002cbabf-0a56-4014-9edc-e983b7f36404","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:50:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afaeed2a-b8fa-44b4-a524-cc499e5f881c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 00:55:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea4f2ca7-a96b-493d-ab0b-9d9bbbd53d15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:00:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f3d2124-d214-43ec-beaf-262d73bb2e2a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3025dc0f-84c7-4bee-b66e-cdf4b175b973","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b89df2a-d36d-43ba-ad3b-303916723d02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:15:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c32edc15-a5ab-41f1-8c8c-b8d8180e2cf3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:20:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fdef34b4-6b26-4d56-a112-afb97b6892c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:25:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2624f0ef-9872-4fbd-b8c6-9a70036f9089","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:30:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dc87ca5-1f28-4b03-bdff-f22ed643e34c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:35:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6c15a7b-25fc-4797-94c3-97e2a52fb36e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6594c01-d156-407b-8804-e324df6fdf5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:45:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69bb8b43-aa54-4284-9c90-d426bda28d1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:50:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81223554-b389-480a-891a-446dc425fd14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 01:55:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7fb7b472-cbfb-4728-ad36-1dfcbcb65f15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:00:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b7d36ec-db57-4061-b87e-0a8642ec20e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:05:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d0e2fb0-9716-4921-9eb5-cfd2dce5d3ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:10:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bad3f95f-c783-415b-a1d6-62f22f5282ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:15:00","totalConnections":1}
{"durationMs":0.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bde9922f-5b00-4180-815d-d116bcf6a14a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7ffaf43-35f2-4e65-9d7f-de1fca6d5a61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:25:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"59b0f6dc-2b2e-4618-933a-1549ecb3b7ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:30:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5e65ceb-b27d-47c5-ae8a-f50880f267a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:35:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b65831c9-45aa-4f68-bef8-3ef3e880624c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:40:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"186a3bd1-53e1-43b6-8d71-5e984a0e3fdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a772164-d992-456f-b863-f324599e5a12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9ccb6eb-09b6-4c0c-a711-96d90b631486","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 02:55:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c2d20c1-20da-46b6-81a6-9c2a87b2793d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 02:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:00:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4781feb6-708d-4e5e-8ce2-420fa44af724","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:05:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:05:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:05:01","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10c1e348-284b-4d26-ada9-00959a2b2b0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:10:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"067e7547-fd68-48ce-b430-6618432eb119","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:15:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ca003e6-f483-444d-8ed0-1ce0bbda346e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:20:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb318f8c-b31c-48b6-977f-c81f6a125a0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df06ba6a-238b-43b1-b02b-6347af23a384","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:30:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b665585e-69d3-48ba-ae79-17b65746e632","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75013a54-39a1-4e6e-bafc-c090ac25cdfb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:40:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2904e8f8-a6cf-450e-a5e6-f11b4eff209f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a2ce93e-5cbb-4fd7-baac-1d050eefb2a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:50:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dcde9ca8-6b5e-4c5f-b035-a0cab07e6fa9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 03:55:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3177bd96-c564-4d87-8268-fe1c4467efb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:00:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0602d29-2692-4e9c-8735-940bb1ed5b1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:05:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b57ce06f-4dbd-4d41-b06b-b05ad7366600","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:10:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7553298-1a3b-4280-a2b6-726f855f9758","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:15:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3cb7dbbe-c090-44cb-b740-d109e3119775","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:20:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b5e6e06-9d98-4a35-88a9-dc5476645f3f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:25:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"694dcc59-eabd-4727-ab19-0cb788ac6107","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:30:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63d204a9-de71-4e4d-8efb-c36bd5064568","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:35:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"443f6666-e410-4659-8a34-2b7dbf6b6333","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:40:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e92d3acb-5b14-433f-a715-2318bb309a03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:45:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15fbd6a3-9cec-4603-a5cd-245f8dc93174","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:50:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:50:01","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ee8b67c-4cfc-488e-b41f-ff76e55d12b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 04:55:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec6e84dc-0f82-4078-9ead-a92c49aea9b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:00:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b43b4d1-775c-4a6d-b804-f8641ea1bc69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:05:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce673123-307d-4f81-a0a7-be12259e85be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:10:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aaae1cac-f674-4b3c-8a2e-2aca6261f4ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"682a2271-1a1a-4a86-bafb-11a83f8d8398","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:20:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0f1cd82-dfeb-46a2-9fa8-64b84ca21192","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:25:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb9356a1-16ab-408a-9f31-7e0887717be5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6800d3e-0470-4fd4-b77e-d972450f7ce4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:35:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"202327ae-b1f8-463b-9b03-d6d6bd26bb3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:40:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"385968d7-96db-4b5c-9899-c5e36686ba08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:45:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4411356f-3829-4aa3-93c8-d7dd52dfc140","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"105bf62f-7137-43d4-9e25-4cbdea4191f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 05:55:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d4a8d42-4314-46ed-b9aa-653a4a46c8a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:00:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:00:01","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa2ba5b4-9ae2-45bb-b206-feb3f947a4c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:05:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0b29de7-b49d-4c8a-9917-a48d250b90c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:10:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8d807df-423c-48eb-bbb9-1780aeefaf2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:15:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d016b27-d450-42f8-9bab-7c9adeeacc90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:20:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2bedfc20-6566-43ed-b173-2b7e0ab55c91","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:25:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ccbd16d-72a2-45e3-bfb8-30002b1bfd5c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:30:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11b91dfc-a4fb-4657-8db9-91fb6a5d3762","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:34:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21a132e3-9bcd-4447-8e78-92d7589f5646","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:40:00","totalConnections":1}
{"durationMs":0.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28cee387-af7c-439c-a66e-9b441ebaa9da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:45:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e245d763-b9ad-44e3-bbed-f73531541146","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:50:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74df081d-d097-48a8-9f67-5936790e68b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 06:55:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9516ea74-86f2-47c9-b142-62cf56a6fe77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:00:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7daf9a2f-d70f-42dd-8cb3-f53290763408","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:05:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e191d20b-7854-4938-939d-361bfcc39480","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:10:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5424480-582e-48c2-af49-3dd7a691c86c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:15:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c8053a4-6ecd-4a0c-adf3-9d7cd601567b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:20:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79256eda-4a98-4293-bb58-77ff562bdd81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:25:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44b2ac05-c938-43ec-95e8-a9a02b88c2a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:30:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"335bf82b-8459-42c8-818d-2574b15b0b66","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1004445c-fc84-44f2-996d-dcb5f6ed3d68","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:40:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68b9bc6a-89e5-4320-8701-bbfd99373ab2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:45:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba8303cb-c097-46f9-ac25-0dff63b08475","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:50:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14c2a3ca-5614-42df-994a-ace4102d3590","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:54:00"}
{"durationMs":4.34,"ip":"254.22.211.28","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/session/properties","requestId":"1bbd501c-5a98-4929-92c9-9af040a8dfed","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-09 07:54:27","userId":null}
{"durationMs":2.17,"ip":"130.87.78.165","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/session/properties","requestId":"c4493eb7-beaa-442f-adeb-4b6179fef757","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-09 07:54:27","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 07:55:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9bbb7b0-f614-4485-98fc-44df50076434","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-09 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-09 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-09T05:00:00.869Z","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-09 08:00:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf26b8e3-f2ef-4bfa-8d5d-d06df1896938","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:05:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61411339-02c8-47fa-b64b-94c74737c523","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"316ac984-564b-4dcf-a514-bf49c8b398a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:15:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d661b7c7-ea7b-4e15-bfd6-4b41a8a4ab2f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:20:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1348de44-365d-4fb5-8b80-9e091e08643b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:25:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05979da4-c6c3-41e7-ac71-f76d854af92e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9e8ae13-accc-4567-832f-ad6bdd9289fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c2bbb29-595c-45ac-b52d-7614a820f967","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:40:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9877cb4-ee13-478f-8e49-90aae1c094d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:45:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"244c008d-f512-4876-bb39-905f9918b6ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:50:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9cd355a2-c259-44d6-a4f9-a845d8e51a22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 08:55:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"154a32a5-9b0b-4358-8817-9a9546ca9404","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd368235-a8c2-4c99-99ff-8649134dbed9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:05:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc856ed8-4682-48a6-b5d6-349819687acc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:10:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25d26bfd-c59b-4a38-8afc-9daee4681278","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:15:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce9d6da0-0b28-4bd4-a949-4ef8888a699d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99b90794-c70b-470f-80ea-1463f63a4af3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:25:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc2ec68a-fa71-404d-bfa7-95c2815603e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:30:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-09 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-09 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:30:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"626dd088-af2f-434b-844e-3156864d4947","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:35:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49355e38-a50c-4402-a8f9-396cc16eb619","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:40:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6321010-4146-4408-902a-f36bfd1ceaa5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd20a4da-781a-4628-9eef-73ab0d431ac5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:50:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b98d0524-b90c-492a-b98a-7bd1bcd26aa5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:51:00"}
{"durationMs":1.07,"ip":"41.80.118.161","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57a13c99-35a0-4601-b687-ccf4a9ab6634","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:51:07","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 09:55:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f026fbb0-b718-4d72-9896-13c8b26a2d9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:00:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aaa169fe-7976-4516-ad7e-8a05ee08aa3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7aca0da-704d-425e-a4b8-a55c3ac0013b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:10:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f2ea952-ae10-4a83-8a22-b511a890e15b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:15:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99611ef2-13c6-4e39-99a9-5c86ebcf2628","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:20:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d4a0ae9-7436-43d5-af01-efdaa23fd9bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:25:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"439a6907-1a74-4436-be32-e97b8fa98588","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:30:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5beda498-2076-4ad1-89ce-1d9cace9b56a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:35:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10ce3532-eb6b-4cd9-9976-c19678814fc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:40:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f20182c7-ceb2-4099-8191-05b95a8a08f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd08d9ff-ff98-47fd-bf57-a9bd7c40b061","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:50:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddbe07fd-bda3-4f69-8424-20acb0e99e86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 10:55:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"38a4c1b5-7f4f-4783-a2e3-adc1bb6631bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:00:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2047c64d-a1ce-4d0d-9971-96ef6dd92bb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:05:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9d95d6c-b190-4039-b69d-666412973901","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:10:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4946ffba-b4d7-4b60-9516-7a5538cc6e59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:15:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d961668-f856-4f21-8787-076f392bbee7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:20:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9149000-124c-44f3-be30-885e3b4941f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:25:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ce48eca-c4bf-4632-bb97-e40cccb9afe9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:30:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84c1ca97-3be7-4442-bf62-217bd0ab8ae4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:32:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:35:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73304326-f89a-4898-b7ce-5f8ef5e43f58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:40:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1353e253-d02c-476e-9d72-c1ce76be7d34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:45:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"102de789-5b81-4784-9037-a385210ce2f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:50:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cb812d3-d8eb-45a2-a6c7-e782b3305726","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 11:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23fc2a0e-6d6c-466e-9124-8d85639e9b00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:00:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6e90009-0dcf-4c46-b609-2e745fd70df9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:05:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20ff0e72-8593-4977-bc7e-62ef449e0d1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:08:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:10:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fc902f2-a86b-4fea-ab60-5855c5d0ed77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:15:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1e490de-ff07-47ee-a91a-f7ec363019c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:20:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef4449ec-93b8-44a2-84fd-da8eeeb1c6f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:25:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e91b679d-071d-4788-ab74-438c1c6895e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:26:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:30:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"162b64ee-e464-4bcc-a779-71c60a8a1835","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:35:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f260b0c7-a1aa-440a-a2d3-227f1fae2b50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:40:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5e7604f-4388-49ab-ae10-bf10eba44ded","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:45:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee9f56ee-5e71-4456-8ee5-5d4317481e35","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:50:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33fb82f2-4bec-4997-99fe-77d49078d267","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 12:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:55:01"}
{"durationMs":16.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"262d4084-c1ab-42ec-9860-9f794c24fa84","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 12:55:04","userId":null}
{"level":"error","message":"[Email Queue Job] Error processing email queue: Too many connections","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-09 12:55:23"}
{"level":"error","message":"[Email Queue Job] Error processing email queue: Too many connections","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-09 12:55:34"}
{"level":"error","message":"[Email Queue Job] Error processing email queue: Too many connections","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-09 12:55:50"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:56:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:57:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:00:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12774775-687f-40f0-95e2-40c302c9ed53","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:01:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:05:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92763e0a-c098-47fb-b91e-37e2aaf01b44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:10:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a36c202-a855-4bbc-a940-c1de962103f1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:15:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea3acf41-2e67-499d-abcb-4c21ceec1146","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c964a00c-73ee-472f-8d40-f1aeff936d23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:25:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b537303-2bcd-41f7-95ab-69958eb4ff9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:30:00","totalConnections":1}
{"durationMs":10.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f5723b5-5ebc-474c-97ec-7b1ba950d261","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:35:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5241f2cd-344f-4b8e-824a-1173edb299d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e06e45f0-d89d-44a7-b2fe-6a54c883a4b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:45:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf22de99-8677-4d0f-adf8-7702299e0da4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:50:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8aefb6b5-8dcd-4880-ac95-0bc4efc893b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 13:55:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5c2d6e2-3a14-4bf3-8066-ece67d94c965","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:00:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85c2f016-0f69-4eb5-b1df-5d7e39c2ea90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:05:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6c53cee-eb8c-4954-9cbe-4ce5f2a088f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:10:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69a1f9f3-6872-4714-87e7-336fb056aeaa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:15:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bc70740-ed06-4188-871b-44cd2a802aa5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:20:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c0526c3-7272-458c-9f88-b8b5d5f60554","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:25:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02de4a51-ec62-49c6-bea2-f8f93d3a5254","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:29:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:30:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7e6f715-99c8-4688-b69b-f2f7af30c277","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:35:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d3a3a7a-b08a-488b-bbf7-9f517c7c02dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:37:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:40:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65feb36b-4150-4751-9786-95b3308d48d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:45:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b76c62a7-6e4c-4dc3-b1ed-645c88995eac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:50:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23fe9952-38bc-480b-8b3e-02417a573a30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 14:55:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c1baf9f-f34f-45c2-b42e-9761b98b63e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 14:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:00:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccb62573-0456-4fa5-a564-1e348e4da097","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:05:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a76388c0-b4b0-49bc-8b24-ab0de7d651d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:10:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a22b445d-b4e9-4fa6-bb73-70463de5c55b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:15:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ec22ac3-0f38-4d13-9d57-cab61088bdc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:20:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19ec5d0c-c78c-4ab4-b261-0ac4523f9c53","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:25:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c73861d3-d21b-4d38-b8dc-62d6d9b9e0c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:30:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"404dcf52-ca72-4610-9f63-3a4460d1943c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1310b816-8b11-4a91-ad74-8e927a8340a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:40:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b426b33b-3692-4131-9c38-c26149671628","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:45:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51049538-6304-4f3d-9ad6-6102c0477f2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:50:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"119509dd-a0bc-4f79-a20b-109096a122e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 15:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:55:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2088f47-05f2-4b67-afe0-125adca1f24c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:00:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b62fc6ca-e24e-4c85-a356-8279bcc0b34c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:05:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41d8ad83-d70b-4fd3-bef2-3e6bdde13f4d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:10:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf747da3-5ec2-4b23-9047-59f2c9878429","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:15:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53932138-381f-431d-b2c6-e7cbe889122e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:20:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba0391db-911f-4f8c-a5da-635c48a0ff58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:25:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"224a8551-ddfa-47d0-b78a-5befcbcf5513","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:30:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc136f54-544b-4de2-8cdd-ee486203a082","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:31:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:35:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e66f0eda-ccff-4de6-a7a8-5c05cc1c6ccf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:40:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cdcc6a1e-1aab-4249-92c2-d0e5e1f45b8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea3c4d1f-2ccf-4a67-98a5-3113593eeb1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:50:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:50:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:50:01","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ac4b67b-a81e-4130-900d-8b50f8ddd782","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:55:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b22d74c3-9b11-4f40-a748-fc2110526e2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:00:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef9efaca-6967-451d-8c11-875f491bb908","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:05:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e7723d7-f524-4369-b5f9-195837df65d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:10:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbaddf23-c55d-47da-9070-d40a37b757fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:15:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"899d6d56-f9c1-47de-9151-711edfc7e417","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:20:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b266c35-d7a0-4596-a060-6bd2c75bc3d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af12d685-fe6e-4ef3-aa74-fae35e018f67","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:29:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:30:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbd185f8-7e2e-435b-8eb8-226e8c488188","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:35:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5433409e-a75d-4a98-84bf-2cf2f737968d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:40:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6ccbc61-a0bf-4c33-a653-365e4ca6a3fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc0fac3e-850b-4f6f-9051-fb10d5390ba4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:50:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"120f0b33-1bbb-4718-8e0a-9dd884f60a1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 17:55:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6322c447-d1e0-4578-9d4d-6551b95cf823","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:00:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33e9ea79-adb0-4c80-b949-83b92ed8d0e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:05:00","totalConnections":1}
{"durationMs":0.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7b529f1-e554-42c7-ab27-1fbc8d117120","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:10:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:10:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:10:01"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee20d551-dc6d-4825-83aa-b4036b62e399","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:15:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c23dc32-8f49-4fed-91f5-4db876288062","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fdc8c1bc-496f-4cdb-a0a9-adb2393c846a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:25:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acf45928-3084-45d7-80e7-78e3e1e37a60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:30:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9522fdd-b96d-433b-9f90-7f7b91b81937","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:33:00"}
{"durationMs":1.69,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a8b5b20-14e5-4bf4-af82-93bb9995b060","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:25","userId":null}
{"durationMs":0.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9866e95-5455-4740-b2ce-2016cdaea9d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:30","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":41,"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-09 18: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":null}
{"durationMs":0.79,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d2e4978-1c0d-4c6a-b15f-35afd66037c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:39","userId":null}
{"durationMs":4133.02,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"fd33499d-1ae9-457b-b843-41c6454355dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:42","userId":null}
{"durationMs":194.09,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"7cf4f3ce-3bbd-4583-a720-04080599a35b","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:43","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":113.06,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"824e118e-82f4-4a66-b0e3-20100830cd19","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":238.43,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b061c680-59a0-4d97-aca1-08d921178572","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":399.01,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"d4e0e3d4-3ef3-4b02-a02a-700ff219ecb7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":278.33,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4572429c-973b-4ffc-a071-634681918b43","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":4508.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"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":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"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":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":747.1,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":198.25,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5f97057d-0737-4e96-9845-9a672c0d54c0","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":416.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"c0ca9ab8-9d8f-4967-976e-8847ead52e35","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":442.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"95e32273-4773-47d6-a488-1839108c0deb","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":457.58,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"7777b9ac-2b08-4666-bdac-082f73f693b2","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":484.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cb9f6532-e56c-4e3f-b998-4787e01588d7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":303.67,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"411cb259-2148-422a-9f1b-49fab78f4b22","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":336.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/08/9c58f785-af02-45e3-b44c-8bf74427f98a.png","requestId":"2ebc2fa3-65ff-44ef-ab19-d7b64f486418","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:44","userId":null}
{"durationMs":76.44,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"fe68131f-40bf-46f3-9d60-8447ce617b9e","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":256.77,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"4a399511-458c-47d1-8cc0-5a5dd509f504","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":264.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"d79ccb9f-7977-42c5-813c-1dc6f106f923","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":269.59,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"42caa5e8-8369-4bcc-8f58-185de9db5930","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":278.73,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"ff462945-77f6-4e3c-9034-d4896efbfde7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":282.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"e88267cb-d70a-4172-9b1b-bdf6800426f5","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":4.67,"ip":"172.246.241.74","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/08/9c58f785-af02-45e3-b44c-8bf74427f98a.png","requestId":"baba119c-01da-4ef6-a419-6077a344c977","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":null}
{"durationMs":276.61,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"ad66183b-9e9f-4fb9-a007-531ce87dd993","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":8.15,"ip":"172.246.241.116","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/08/9c58f785-af02-45e3-b44c-8bf74427f98a.png","requestId":"9708c47f-2035-473d-a11b-1b29e1b935fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":null}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1069.4,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1070.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1183.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1273.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1437.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1550.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1551.1,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1551.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:33: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":9.09,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a90d2550-b2a0-49b6-a3ec-933a91b9ce99","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":1049.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"e2a4c4ef-16f4-4b37-a244-508433ac7ee3","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:46","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":2044.8,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1519.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1520.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1520.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1521.3,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1521.8,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1522.3,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1522.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1523.4,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6c6909b-c880-43b4-92b1-b175c9a55d77","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:33:46","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:34:00"}
{"data":{"href":"/dashboard","navId":"1788968057970-797595","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:34: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":14.29,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"090dba8e-4396-46f1-8b87-6fc875a93a90","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:22","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"href":"/dashboard/students","navId":"1788968059708-681709","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:34: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13.06,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7077055e-917f-44ab-bff6-c560f06a00d9","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:24","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":18.84,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"6626ee99-c2f7-4d2a-a223-241c152a08b7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:26","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":58.48,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"00e6767e-0ad6-4868-ab99-0748bcadc504","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:26","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":115.35,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"775a4c0f-add8-4caa-8029-7cf2018c8e2c","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:26","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":176.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"730f6979-b34a-4641-9fc1-9e3183da00a5","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:26","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1788968059708-681709","text":"Students","to":"/dashboard/students"},"durationMs":2483,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard","navId":"1788968059708-681709","to":"/dashboard/students"},"durationMs":2483,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard","navId":"1788968059708-681709","to":"/dashboard/students"},"durationMs":2554,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":437.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":523.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":586.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":633.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":15.57,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fd7903d3-c213-4271-a8b2-da6e12a16452","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:27","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":216.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"b75e4b49-7c6c-47fd-a38f-a254ec971afb","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:29","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"href":"/dashboard/guardians","navId":"1788968064860-689017","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/students","href":"/dashboard/guardians","navId":"1788968064860-689017","text":"Guardians","to":"/dashboard/guardians"},"durationMs":431,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/students","navId":"1788968064860-689017","to":"/dashboard/guardians"},"durationMs":462,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":9.7,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ce7afcf6-8cd6-415a-9186-92c9ef3c647b","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:29","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":583,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:34: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":14.5,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f9b29cd7-164b-4844-8468-386548fed35d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:30","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"href":"/dashboard/academics","navId":"1788968068594-392388","text":"Grades & Streams"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:34: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e332e1a9-23a7-4901-ac6b-e37a713e745b","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:33","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":16.42,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"3eee22d2-b391-4589-951b-8bc2886065e7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:33","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/academics","navId":"1788968068594-392388","text":"Grades & Streams","to":"/dashboard/academics"},"durationMs":898,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/guardians","navId":"1788968068594-392388","to":"/dashboard/academics"},"durationMs":898,"event":"NAV_STALL","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/guardians","navId":"1788968068594-392388","to":"/dashboard/academics"},"durationMs":912,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":392.1,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":12.19,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7e05539f-8ccd-421b-a033-4f3849b1f69e","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:34","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":65.08,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"becb71bf-b0a1-4d39-aa37-fc5ae4a20239","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-09-09 18:34:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":52.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4f08bf09-fa7d-4f85-9ef2-08f999f0c676","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-09-09 18:34:45","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":428.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:34: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":435.4,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:34: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":10.97,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c800b5d-3ddf-47c9-84f6-fe12cec42746","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:34:46","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:35:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa168fba-f8d1-4ce7-af06-76d3bc4303aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:37:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:40:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43d18450-367e-4ea4-b4da-2862892459bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:45:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"181c7a9e-4fa0-4c36-b5da-78c452161ead","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:50:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2e1cb3f-ba14-4944-bca6-15753f77794c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:55:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"255ad70f-7fe1-4d1b-a9ef-11f3d3a0a6f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:57:00"}
{"durationMs":1.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"379854b4-56cd-46c7-b2af-500429b0d265","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-09 18:57:03","userId":null}
{"durationMs":1.37,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1240a374-36c2-4892-a8e2-406f07c4d5a7","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-09 18:57:03","userId":null}
{"durationMs":46.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"f7beacf2-4952-4add-a7b1-0a08e71c18c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:57:03","userId":null}
{"durationMs":83.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a1ce32c0-10ab-4db2-ac20-e4e5cfa2819d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-09-09 18:57:03","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":75.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"04949700-803d-4078-9860-2098839e2c68","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-09-09 18:57:03","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1421.6,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1440.1,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13.87,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"27c1a965-481b-4de3-9895-c61a7c90e03d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:57:04","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":440.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":443.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":14.15,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c105ec56-3aa7-44bf-905d-5434d7aed086","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:57:05","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":3,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":1,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":12.15,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d7006eb-93da-4f5b-ab96-3a2371b68fa2","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:57:07","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":1,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":12.43,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"099c2050-68c7-420a-ba88-1bb05095f0c7","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:57:10","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":1,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":16.36,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e28b7ac0-6bd2-4b85-989f-6b959a0f083d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:57:10","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":78.77,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"34bf16ef-942d-4858-9147-5db53f1d45de","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-09-09 18:57:11","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/academics","href":null,"navId":null,"text":null,"to":"/dashboard/guardians"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard/academics","navId":null,"to":"/dashboard/guardians"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":488.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-09 18:57: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":8.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"68da13e4-7248-4ad4-9896-6d5f10367106","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-09 18:57:11","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:00:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c58d8a50-7187-4f86-acf4-401c025ce464","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:05:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bfab814c-3bc6-4ce0-bd7d-490de4de1555","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:10:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa4af668-587c-4485-9f30-5c7ae1abf57e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:15:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a878b6b0-15d9-4bb6-85bc-30e25dae760d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:20:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"baf9187c-24bf-4d6f-9e57-2046875d5818","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:25:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f42de95-adc1-4877-b14e-9cf0fafe2cf7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:30:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a219937-ef7f-4c35-95ab-837d9669fe61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:35:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a20e2eb8-81de-40c8-b13a-ea4dd27027cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:40:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"865e0b4b-6f07-4ba6-80b5-fa926d0d977c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:45:00"}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f9e6558-d1fe-409d-b0f5-50d2206eee07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:46:00"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":37,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/guardians","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-09 19:46: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":null}
{"durationMs":2.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"249034d8-9ab2-47f1-8a20-9080cf884b74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:46:27","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:50:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d4e5308-190a-4e0d-b170-ff41530ce2cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:55:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9eb4aa0-f515-4213-a89c-26ddf4b0dc84","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3ed358a-7472-40d0-b167-ff88af057df8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:05:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48da847c-97c7-412d-b5ef-de73da3b62ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:10:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b25ee1a2-4b9b-4a97-9b70-a9ceaea883d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:15:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4608cc1-da3d-45c5-bbce-477220bba5de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:20:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c83f2b9-a856-459c-af9e-6d255ca4c3d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:25:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a778206a-6ea8-4ed5-a997-7eeb0952a086","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:30:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d167417-5333-44b0-ac66-cbdb1ae668d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:35:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"157fec18-9411-4b42-8658-4947bba8fec8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:40:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28d38803-2d4a-4c16-9b86-e0f12e2db77f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:45:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"955efcce-9b76-49ed-ab12-4cce20c4b819","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:50:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3015c5cc-21de-4be2-ae33-df3a666e0a3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 20:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:55:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76aaef86-0694-493f-ba00-9c3c5d52cd09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:00:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e09e8329-e188-44e9-84a6-b63f5bddb209","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:05:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6966ad3f-33bd-4f09-bf0a-15785870a123","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:10:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97b3ad0b-4824-449a-884b-a556273a39e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:15:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"740602a2-6d6b-40be-b040-cda6e493c23a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24a20b6c-6be8-4989-bc1f-266ee2b13cad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:25:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79359ee6-f521-4ce8-b59c-d46670e8f333","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:30:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52a6fe79-cde9-4e7f-9696-d53c6c7e8934","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:35:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67a53351-2859-45a0-9562-6b88c87cdd7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:40:00"}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41d1d626-823d-4236-81be-40ab4a25a851","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:45:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccfe34e5-060f-4b5a-a230-644925be94e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c731c436-f8c4-421a-8eba-c5820965bbf4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 21:55:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"045182b1-c405-4093-b292-ca2d72afdef8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 21:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:00:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"abc45d6a-d7d7-4a16-b2f2-f89b782c1a0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:05:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7904f99-21b5-47ec-9b68-13c77a195f61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:10:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c5a85fb-d909-4ecd-ba35-dd6842d97f9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:15:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6391a6aa-a8ef-4044-afbe-473234e58ef0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8df12323-111b-43f4-bad1-e563b7bf44a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:25:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec390b1b-51a0-46ad-829a-beefadd6e027","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:30:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c31e106b-e9f9-4b95-9028-899d82a21466","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:35:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a093c7b-8bae-43b3-bf11-4fefbda29319","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:40:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29821132-7a68-4541-8504-ce1770bbd203","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:43:00"}
{"durationMs":1.44,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b6a7e93-ad90-48db-956a-45981c1b78ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:43:53","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:44:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":41,"event":"UI_CLICK","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-09 22:44: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":null}
{"durationMs":1.03,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e883d96-ab58-4f73-9be9-8840231fd183","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:44:25","userId":null}
{"durationMs":1379.32,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"327a6ff5-6b1c-49fb-af8d-5c45b6cb647c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:44:29","userId":null}
{"durationMs":1.66,"ip":"197.136.9.4","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebe4ecc4-4d7d-4062-aa14-8e0d64dfe31e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:44:30","userId":null}
{"durationMs":113.05,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"70b91c93-a73e-45c2-8458-609cbed840fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:44:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":70,"event":"UI_CLICK","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:44: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":23629.3,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:44: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.22,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1a6d8c8d-6eb1-42dd-9617-3ca6997afe9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:44:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55c5d72b-08b6-468e-a256-47334f0c364d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:02","userId":null}
{"durationMs":115.19,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"30b83255-a961-4c8b-a610-e79c483583cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":135.71,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"ce5f76ef-1d06-4b1a-a07f-df70d1064c1f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.13,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"732a5ef4-c303-4dfd-be8e-4d67bef0e51e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.16,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"75a86718-cfd0-4386-899c-8ca073785f34","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.63,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"8875021d-7fc4-4e52-9642-2321d0c722e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":10092.1,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.07,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c48f9a45-23e7-4b3a-b7c2-bc0390805354","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":228.35,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"97a4e5da-7be3-44e8-9c2b-dc83d692b2d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":466.66,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2354c242-5b9c-4459-828f-b73f7b6bd624","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":464.92,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3da4d5f2-1e6b-4a15-9183-249ce722a9c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":422.16,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"0da583e6-8a5e-4fa2-a0da-140a331e3389","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":80.26,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"d3bec123-3af7-40e2-b71c-4ae55fe50448","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.05,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"6b85fc1c-0cdb-44ba-90a5-896dc25ee063","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.49,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"6ff70e7c-a5fb-4a23-a532-aee30ec4544e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.59,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"def45472-e0d9-40b5-9aab-ef842ec84207","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.5,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"7eb5f67c-4305-4ef0-8291-2698397a2dd0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":109.94,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"6ab60b20-6c3f-435e-99a8-896e4ca102a5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1309.6,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1316.2,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1319.7,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1970.7,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":2307.1,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.33,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e56fdb6a-889c-4c10-9d1f-2314efbcda2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.91,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"f08d800a-693e-4dd1-991c-8681cbe01e40","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.03,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"a758ae83-503f-4c3c-8e5b-c2093c3d265a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":7573.9,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":7576.3,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":7584.5,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":7592.3,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1722.4,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1724.5,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1725.8,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":2154,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":2155.6,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":3291.5,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":3294.7,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":3301.2,"event":"API_RESPONSE","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.29,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1218d8e4-3500-4f8c-8013-a731439a599a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":156,"event":"UI_CLICK","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.7,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d008c80b-edf1-4542-8077-739a9b3a34ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788983151164-527533","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:45: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.84,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9a85ad03-f202-4ed9-825e-8ec5dc33e483","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:45:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:47:00"}
{"data":{"href":"/dashboard/students","navId":"1788983151164-527533","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.204.13.70","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-09 22:47: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.45,"ip":"102.204.13.70","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"73669ed3-00dd-4151-a269-dbf453213512","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:47:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:50:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2c0283e-b43e-4713-93cc-58f8468a2020","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 22:55:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40556097-056d-4960-99f3-210c39b930bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 22:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:00:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f2d9f97-2dd0-48d1-9213-7ba693a336dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:05:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ae4e7ff-c30b-4d34-b3c8-9d84581224e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:10:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9c4cb01-b1d4-48bc-89f3-bdf0977c11f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c81d1995-2adb-45ec-91fd-917e6147bf69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:20:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7ead0f9-ab25-4827-9a56-373bb5a86a7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:25:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"995c3536-ad03-40ee-a868-486f17a23b5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:30:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f475ffb-2c03-4635-8a68-0edddffba301","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:35:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af21617e-9ed5-4203-956d-c01e0602ce1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:40:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92c8d64a-312e-4ac7-935b-33f52ed6e8bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b722922-bfc1-4ea0-b846-55cafaf04e08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:50:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d4bfc6e-e401-4674-8ea4-a44df294e122","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-09 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-09 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-09 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-09 23:55:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5380fb43-f158-47fb-b4ba-f5bab9efe512","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-09 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-09 23:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:00:01","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0fc57a82-47ee-4f14-865f-23f8567979fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:01:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:05:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5a0f830-bd63-4248-96a1-6ae19d438972","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:10:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"764f7fe6-a71c-4a84-859e-700d18300c9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:15:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"852bce21-b733-4aec-8cda-325aab1c1b54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:20:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d672d265-f881-4906-a787-df55408bcf9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:25:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50b7f373-ecc3-4d8f-baf7-bdb30b408a1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a74027f-085b-43cb-951d-212bc40b4f9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:35:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1519455c-f2f6-40f0-9ef6-cdb4c5b40d97","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"334a9cc5-5658-4bbe-819a-840bde67ffe2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:45:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7a73fed-4d8d-4f3f-b1d2-6a60087d8d58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:50:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ba131e0-012d-44c1-9b83-da7f00127783","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 00:55:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d03cd14d-92ed-4edb-973a-c07cd909fe0d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:00:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9dbc82db-a8bc-49f8-9c6b-595c53c567ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:05:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1766791-21cf-4e90-a311-1223274946ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:10:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d04a2667-e982-4f2b-8426-c2188bbb9b2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:15:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6a7783c-f7af-4827-a707-909c0a33f4e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:20:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea2039fc-7b4e-4a8b-8133-febec20403c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:25:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9618424-8cb7-41f6-8c63-8242011d1b40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:30:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95542a02-6538-4ec8-a175-0aab04da5348","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:35:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1a3461b-b930-4436-a694-f4ddecc8e2ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:40:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6f2889b-fda1-4246-b012-e7189bc7be3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:45:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d64a7ba-8bf6-4444-92bd-3346aea4bb36","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:50:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8959f6c-0aae-45af-8ad9-cede185b9335","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 01:55:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdcf63cb-918e-486f-8b71-4fc0aaf3eab6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 01:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:00:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c17a1fb-5ffb-4646-9c47-3a4c83e5608d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:05:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b2c2041-0184-45b6-90b6-31403fae0258","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:10:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6db75573-f428-4307-9c31-2146f74a5984","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:15:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94337149-0276-400c-bd9c-41daedc0b8c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:20:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eea98aa7-b95a-4bf8-89b8-474cf81b28e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bca08053-08f4-4967-9227-8de60754a0dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:30:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e73c651-eb70-40c3-bcbb-d823a822774a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb327220-0f2d-492e-8cb8-3e64668e93bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:40:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dfc374fb-b9a7-4ae6-adcc-d09f226c61db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:45:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b806dad-65fe-4366-8df2-8d58bc58ddb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:50:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90cf47a9-15fe-4ed4-ad77-d2ddb34c377c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 02:55:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b6a5ebd-fd13-474d-a617-eae718466efb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 02:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:00:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63e5d020-2cae-4cba-8f6f-a3a3cdfc4e30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:05:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac7cbd31-9377-4d9c-aa55-a8472ebbdec5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:10:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b966778-d318-4749-850d-d92c63140181","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:15:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33562295-3f2a-421d-8d3f-d9479af359e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:20:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70a619b0-4fb5-4675-afd5-6034c75296e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:25:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a1a0b27-eb24-42ea-8607-ccc756e00ff9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:30:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83e05549-1b58-46f1-83d0-9af8638b4bb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:35:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bef00a4-a29d-45f1-a706-31b58fbde338","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d754722-aa1e-4f65-9f30-7accbba826d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:45:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"323ec59a-d6f3-4de0-8838-5176fd5bf398","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:50:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82cc5ed6-81d0-4f66-b1fa-cf3587cca092","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 03:55:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43ecbc9b-d6b9-48fb-adb2-53a539fc339c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:00:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e5e2f39-441c-4009-ae0b-d1400026454c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:05:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab639b92-c4c6-412e-8b3d-c8a2c0755e02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:10:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12efc0ff-6e29-4752-920a-7b70e718f2ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:15:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc2bbc9e-3a30-467e-b916-d9d4f03c4e61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:20:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99a99b89-fb90-406f-be00-2d45cef3d327","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:25:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8a5e338-7fb0-4507-bb8e-f67bd4779c08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:30:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fdfbb2f-00dc-4458-8185-945c409e5e2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae0958e5-416a-44b5-bc63-a58a5425dd59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:40:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4b1b49a-47d3-4a4d-9958-7317aa7cdaaa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:45:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61289126-2214-484c-86d7-bb5c7588b7d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:50:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3259a0ed-d40e-4a93-aa76-5bff5f78b73c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 04:55:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c44e1799-92b7-40ee-b703-baf2b2b52384","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 04:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:00:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50ee8aec-ecfe-40c2-b034-8ea71a9fc4c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:05:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d882c7f0-a1a6-4b56-b88f-d4b5641de482","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:10:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49be99f4-eb4e-44af-9328-52d11d64e12e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:15:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4cc95a2c-2e13-4120-9762-3ec589c83a45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:20:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c480f51-82b7-435c-a899-5654e0acb2f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:25:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9228c416-f8a0-45d9-b08e-19d926e737f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:30:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a8cbfe0-b405-4b8e-bbc3-be76012f4c71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:35:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a94aa96a-bb09-4703-8c88-e36af37269b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:40:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"483bae7a-1fb1-44bf-b9da-f36823cd15e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ada53bc5-ea56-49c8-90ba-f4ca07099b56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:50:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97e22030-e36b-41c3-aa6f-9def5580dc31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 05:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:55:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c6d37f6-f2ba-4cca-afe0-4f7267abc28f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:00:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6ed304e-c306-4bba-98b2-53a37b308f90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:05:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd5e15a5-fa15-458b-ae53-f3a4e59d9170","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:10:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb21833d-22b2-47d4-b671-b35054b5c73c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:15:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bf7cee8-40a5-401e-98ae-0a0606cb88eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:20:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c61cd042-5d58-4cdd-8da9-95f39ba9916f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:25:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24516084-0d0f-44df-b835-4a590a753579","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:30:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73a8c412-53e7-41a7-b4d8-45432d1ca04f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:35:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8090b6c-a1d8-4c3a-b5e0-b8cac68a656b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:40:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56a7f768-bdf9-410f-8d28-7fbc77b176b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:42:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:45:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5841b0b-6de2-419e-95a5-6e3aa91ac526","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:50:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b8817be-b290-4921-b446-cf7b1651850b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 06:55:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff0da63f-fc95-403d-8ecb-f3003f6fac75","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:00:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8912d718-2281-4440-87b5-7f8957210bed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:05:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25af5a8c-ce41-4773-95f9-739d6ec9e66f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:10:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed507b45-5b22-46fe-a8e7-bb7fc55ea385","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ed645c4-bcf5-4f09-a2e6-e4aa86e590f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:20:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66855812-abfb-4a00-a4db-ebf566177899","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a35102e8-a23e-47e6-af22-3f4ae757ce46","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:30:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7171391b-7da4-4d32-b4c1-547cb1fd3d02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:35:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e04a3dd-fa52-4043-8473-92b5d6820654","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:40:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"abcca510-43bd-4967-a6d3-9bc48e97252e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:45:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff0dc8ca-7473-40ea-b57c-1004d7c3f25c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:50:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e239b95e-2db2-4345-9f54-8695da29f76b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 07:55:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f63b74e2-3eae-405e-8723-5be770946387","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-10T05:00:00.341Z","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-10 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-10 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-10 08:00:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65960d33-04c3-4218-9c15-9f904be7bf0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:05:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e97a78de-d8eb-465a-9b90-d44b47e946d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:10:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e67a7818-04df-45d9-90b6-09a7f267957c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:15:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"686e9a9c-75d2-4a5a-bf5f-f4986ed00f28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30068a5f-36ef-42e4-8619-5c3f67edd229","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:25:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b33ade3b-eab9-4ff3-b7f1-614b4cb3d65e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:30:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c95a0c8-ed8b-447d-a613-b985afc13918","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:35:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5254bac7-5167-4b9d-9757-c53933224fdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4476c362-87fe-4be9-82fa-3e093b17e751","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:45:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4275f066-29eb-403c-8f86-048eba4c1800","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:50:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2aaac95e-4645-4243-a696-9f5aa818be49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 08:55:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ff0a9e5-edd8-49a2-bcda-b9cf14216560","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:00:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1dfbe5f-9b3c-469a-a444-e09c9d05af98","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:05:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14199f78-4503-48be-9e2c-15c635865bdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:10:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f041b97-274b-49c2-9db5-60f4e2036da7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:15:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86c0e60e-5170-4409-9d2c-76b3e0771fa9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:20:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"341f01ec-777c-4063-8f9d-0e6b0b3fc5df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:25:01"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5f95c10-7cc4-44ce-8c93-7d68e6277dec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:29:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-10 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-10 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:30:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6ea8df5-4020-4c28-8c12-0078e240ff30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:35:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cea5d7b3-011e-42b4-b5eb-6cd5a548110a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:40:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22d3026e-34eb-4db5-bada-fd9bcdae7737","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:45:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7172933-ecad-4884-aa89-9e6e2d3ef89f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:50:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e115a9c1-6d83-4fa7-8bd7-73aade622353","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 09:55:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5f7f443-2bc4-4761-a84d-5a0f2b59ed6a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 09:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:00:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a82bf522-0c82-47b5-8b5f-4f7a07ec3e70","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:05:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75b3af1c-b7dc-4765-bbbd-2ac168412fbc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58c580f7-d104-4048-81af-867dd6a9b033","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:15:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"983c8bc8-a261-46a5-a5a2-c78cb05da3a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:20:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a39ca12e-dbad-43b8-b01e-4e689eda2429","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:25:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e98b642-9de2-4543-990c-b9c251a6330e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:30:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8642c78-db0c-49ab-9f38-3be7fcaef4b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:35:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4cf58b12-ea93-455b-b650-d04e2cf957c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:37:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:40:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc2b01d1-eccc-4720-97dc-50c8dc5a68c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:45:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de97a526-e8ce-4bef-ae55-44324681f767","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:50:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"37051f6f-fc53-404a-830b-e1ae1c26e205","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 10:55:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7be0448d-bce1-4b3e-95dc-9d8fcb4febcd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:58:00"}
{"durationMs":1.68,"ip":"66.249.93.68","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b435fd49-4b16-4aad-a973-7b16e286fae6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:58:45","userId":null}
{"durationMs":1.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05d77c06-4c4c-4b21-bed7-d6bd5082c3bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:58:45","userId":null}
{"durationMs":3.66,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"75497a49-a457-4524-afa6-3da9bc57652d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-10 10:58:45","userId":null}
{"durationMs":1.97,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"d5701c5e-3c8d-44b2-94e6-120c068b998a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-10 10:58:46","userId":null}
{"durationMs":2.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"466126a3-d63d-4eaa-9522-0f17b846d687","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-10 10:58:46","userId":null}
{"durationMs":2.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"14e52bc0-735b-49e2-a94a-acb60a67c361","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-10 10:58:46","userId":null}
{"durationMs":2.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7f8347c9-7430-4b1f-8ad7-c01ae8d6403c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-10 10:58:46","userId":null}
{"durationMs":1.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"35b361ae-ef7b-47b6-b537-a53768771ac0","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-10 10:58:47","userId":null}
{"durationMs":1.46,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"7843753b-24b3-48cf-aef3-a9e775de9d69","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-10 10:58:47","userId":null}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-10 10:58: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":"/","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-10 10:58: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":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":397.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-10 10:58: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":1.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1fb527f4-6149-4446-b3a0-d1f7da3c2c54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:58:47","userId":null}
{"durationMs":113.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"dfde3d94-71d6-415a-a144-f05d20aa77f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:58:47","userId":null}
{"data":{"from":"/guardian","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"66.249.93.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-10 10:58:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36 (compatible; Google-Read-Aloud; +https://support.google.com/webmasters/answer/1061943)","userId":null}
{"data":{"from":"/guardian","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"66.249.93.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-10 10:58:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Mobile Safari/537.36 (compatible; Google-Read-Aloud; +https://support.google.com/webmasters/answer/1061943)","userId":null}
{"durationMs":0.97,"ip":"66.249.93.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e8cd124-bd33-4d50-b255-2efaded93adf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:58:47","userId":null}
{"durationMs":320.16,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"0780d0b9-63c0-4559-bb8d-9f5a35a51b6b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:58:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":45.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b970a1dd-0144-43bc-8c6f-4ad4ba21be8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 10:58:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":49.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"44bc2c01-502f-4b07-bc94-29b40e4e7d49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 10:58:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":35.56,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cb33a1e0-32c8-486e-9afc-f0c1c684100b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 10:58:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":48.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"112517e7-db8c-4e55-b3aa-690fa539ae7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 10:58:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":56.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"402f2ceb-5dbe-416b-84f1-6dda9e495b1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 10:58:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":1113.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":928.1,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":930.4,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1840.3,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1845.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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"}
{"data":{"method":"GET","status":401,"url":"/guardian/notifications"},"durationMs":1848.3,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":679,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":887.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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":8.99,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"76063de3-e610-4a66-b153-5ee9ff49d05a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:58:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"ee4f24bd-6a08-4039-9292-676f13b05879","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 10:58:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":996.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1121.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1123.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":1129.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":1441.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 10:58: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2643698e-e6be-47cd-8428-f334a83f6ba6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-10 10:58:49","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:00:00"}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d90acf6-732f-4818-b34d-d90d5802b4b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:00:02","userId":null}
{"durationMs":49.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"128d3262-c4ac-4f6b-89af-8f54189b32a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 11:01:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":110.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b0b1b644-34b7-41e4-98c7-0dc838ce94ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 11:01:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":138.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"226d3697-934f-4b00-9546-699783ac3f40","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 11:01:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:01:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":959.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 11:01: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1412.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 11:01: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":1421.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 11:01: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"619533f1-1163-497c-9819-38739012123c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:01:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:04:00"}
{"durationMs":53.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9def17fe-3543-4be2-83cc-8aaac5fda6f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 11:04:05","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":83.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"11ef3a1c-1605-48d3-9cd5-b726e2ccb9f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 11:04:05","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":37.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9df3c1ad-add2-4513-bbbb-1596415dc6a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-10 11:04:06","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1219.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 11:04: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":1210.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 11:04: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1462.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-10 11:04: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":6.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"67f55789-62ab-40ea-bdd5-96a0d76cbe43","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:04:06","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:05:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa6739dc-303b-4a7c-97d9-3a32c115ab11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:10:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e22a41ca-869f-4811-8fef-4fdd9f2a0c2a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:15:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e1ef3d6-85f0-4a45-b540-316e714424f1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fcb89ce-ceff-40f7-971a-38bdcbf4089e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:25:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4be77e13-3db1-4b7c-ae77-8d944e50eb75","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:30:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2c7faff-4a43-42cb-8260-41052765fe98","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:35:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae959f03-aeb4-4b6d-a09b-954f1f4baed7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53457aa3-cb76-42ea-af07-56ee3f44bb0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:45:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26f53121-9ff4-4be6-b4af-e952680a8863","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:50:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a27ab9c-9814-4359-a070-a7f0ecd57e1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 11:55:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e71981d-2989-41e5-9eb2-6a2fbfa37dbf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 11:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:00:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"760dfbc2-d2d8-4c0d-a9ec-dbf355e0fe58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:05:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e63f8de-6f0f-4aba-89b8-d079500923f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:10:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"902064f8-e990-42f1-8a4e-641280c6906e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:15:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab48b633-24e2-468e-894a-44f7a19cb7f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:18:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:20:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87f4e14b-0486-4b73-9612-ff88331e572c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:25:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30c744f8-63f7-431c-b502-ad40bdd33b95","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:30:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c765cecc-31a1-4b2a-9ae2-f95f7aee46b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:35:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93d3dce6-f674-4cd8-b82e-9ad0e76943c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:40:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b2b3548-0b49-4b03-a053-eb653b8a5030","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:45:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bddba60-b457-4167-966b-e210c42ddd47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:50:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e20fb13-b1b6-4a73-8cc9-479e56b40c38","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 12:55:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30a3facf-d9b2-4423-90a9-699512e38cc0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:00:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f24a41d8-39a6-4369-8c52-18f71a3b922b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:05:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"754fd15d-3a43-4fc7-8695-20e752bfb186","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:10:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0a8ec62-511b-4a2e-8430-2fdc9f6e08d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:15:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"460be5e8-493e-4ab0-9f17-cb53620595a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:20:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25871eea-b4bd-4fd2-858c-4162ca7f0b94","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:25:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"304b24c2-6e70-4c75-bb1c-12530acd7f11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:30:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9573b2af-4a11-4aef-a670-5a7719d59891","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:32:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:35:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60c525a6-1377-4aa4-b8c4-2925b5c44726","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:40:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b357c04-611b-4fbd-b686-719d8b89e4f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:45:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"063e10da-f7db-40e4-a051-2406097dad2f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:50:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a53f8d61-6f19-4224-b01b-3571b681672f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 13:55:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55fac403-eeed-467c-886b-f79aff7b5ee8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 13:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:00:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d40dbb6f-ab2b-4a55-8c79-15dca2310e28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:05:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4463ffc7-f8c7-4fd0-8afa-736d287d5cf3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:10:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6ed2245-1f3a-4d8e-9af2-1c805a10b046","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:15:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d8c893d-02cf-475f-bec9-f148ba921ba5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:20:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04a83b95-1033-4458-bc3f-92b2b9843824","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:25:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f26b4380-6828-4070-ab18-734c8aa83770","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:30:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6520ac47-2f75-4fd5-a623-4be9ef308b8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:35:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c18b4a52-a7b4-447a-8f7c-15119becf994","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:40:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5337ac6-215a-435d-94ac-fb0888931af6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:45:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b752cea0-4daf-4354-872b-9016ad364845","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:50:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b67251b-54b5-4bac-bb18-3b342ccd2e82","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:51:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 14:55:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cf2143d-2580-4d8a-8502-b1d3d0a5f38b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 14:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:00:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b81742a7-13a5-4c2b-9644-c37348e5628b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:05:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"faa553ac-2cac-495f-a6c2-65d51181b41d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:10:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb0984bc-d5b4-4f16-b5c3-021895a86ab2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:15:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30f19f01-f3d4-44cb-9cfc-dcb0b989ae89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:20:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be5f8e5a-162e-438e-a330-dbe4804dc612","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:25:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd2a37e6-306e-44e5-bfd3-0275f4efcff7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:30:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15d0b2ac-42bd-4b64-8560-2c3e4adea92c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:35:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ab806f4-736f-4989-b3ef-f688d305ea4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:40:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58aafe14-9652-4147-af5d-cc9b326168cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:45:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb2196af-da6d-43f0-8609-9bfce6389e8d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:50:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d99da13-58d4-459f-a32d-ba67e3c5e192","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 15:55:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5f49dda-78aa-41a4-8347-4deba314a2b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 15:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 15:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:00:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a60f61df-4109-408b-9f40-629a4a55cf15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:05:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db82b60f-3edd-497e-94ba-9ebf0e7b223e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:10:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a97d68be-ff39-400a-a9ea-874f597f674e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:15:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c43dc55c-49a5-47eb-9908-0c56e712a04c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:20:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d5b3493-f635-49d4-968e-647fb61c09de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:25:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95cded4b-94d7-420d-a8b2-91aa9179ea71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:30:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4824cc28-55cf-481b-b447-d68d5dfff539","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:35:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d5c4f5b-1934-4940-b9d2-e2e1dd6f2dc7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6493f3d4-0a10-494c-9649-5c4244ea0bb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:45:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ea86ae2-f345-4dba-aad3-06109a9ab60c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:50:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d85c0cd-50c8-47f6-b066-c23368aa8c7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 16:55:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a62856b0-a8c8-43f6-a5ca-e66a87105996","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 16:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:00:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41ff840e-d1ba-4c1f-bfb5-a9a4f93d3244","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:05:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"369be60e-f186-4944-89ab-5b6a0b0eef74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:10:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77d3aee4-1246-4b31-adfc-728270d460e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:15:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc686386-98bf-4084-8fff-5025e09ca942","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:20:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c847948-b95f-47f8-bbc6-5d397c82f849","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ba9d2d0-f197-4311-ab75-f97b74d359b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:30:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d79e07b-f30f-4221-9c6a-663ba3afb047","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:35:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76760b18-4d65-43e2-a150-5f5a2a441193","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:40:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbc39203-5d5d-4fee-bc28-9a11a53c87ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:45:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d7d7824-512f-4c16-89d6-0ce44ad86f15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dab9c2c2-dbf7-455f-8ce6-c2a6a81c012f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 17:55:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc750255-67f9-43d7-89e5-f100bbd12705","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:00:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e09dd67-92cc-43ce-8203-e962bcb350b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:05:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79b49d95-9bc8-4211-a5ae-e0b671678cf6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:10:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a77a67c5-592c-4a99-8aed-bd7848c5458a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:15:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"899f5cbc-6f2c-499c-a2ed-fa776984d5ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:20:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4fac365-95ad-4b71-b46f-8cda5100d73a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:25:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34bc2657-cf18-4b49-bc0e-e986e69e9d1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:30:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48f995c7-cc63-4c87-b706-1dac5512743a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:35:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1afbdeef-1fd1-4fc8-b018-c6bee3479fce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:40:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff9944f2-ec2e-4470-9195-9aee4cddf268","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:45:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b7bce3d-0e7a-4f2c-912f-c1cfe5f1cfd1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:50:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2903eaa7-f432-4d88-ad15-d1120f44d05b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 18:55:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ced4965e-49dc-462d-b1ee-6157429350b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 18:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:58:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 18:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:00:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"faa0a28c-8532-439f-82be-1559135117ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:05:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdbd3b01-6f01-4f32-b913-5cb6f8987764","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:10:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3400b24f-1a85-4faf-92fe-4f8f6aa99b12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:15:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ac6399c-5870-4b71-9713-1b26a171cea9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:20:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2b4af9a4-2077-4cc7-ad91-9015ea3bbeb6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:25:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b80ee51-a978-40bb-8171-f2f12f527e15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:30:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ebaba51-1e7b-4a9f-82c1-547611d0d9f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:30:03","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:35:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c0e2326-2db3-4c8d-abbf-49057524f325","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:40:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04922bc8-d63d-4b8f-948a-60152ae9b3c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:45:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2204a8cb-f013-4327-a6ab-38d93d2d7677","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:50:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61b75148-d614-46de-8862-d455a3ec3c3f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 19:55:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0f53cd8-848d-4644-af6b-c084cfb7e645","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 19:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:00:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"caa8c3d1-9ff5-418d-a0e6-d9d5852ead83","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:05:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c2b5bcd-7ad4-42b4-961d-3d256a052998","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:10:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f24d9933-d681-4bca-96fb-9e75b147aee5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:15:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92ce4de3-1fda-41ad-8ce5-44286b30ae4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:20:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"543be01f-ab41-449d-a586-f063b2bfc38c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:25:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f39d5068-40bd-4a30-b230-41505c778511","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:30:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed2634ba-9b27-4be8-9d65-6e94aa41fe16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:35:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b8b9724-8c9d-4885-8fa5-c71c22aa348b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"beb0c373-26ca-430c-ab78-6c09d9419b0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:45:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e9f9365-693d-40dc-a578-d6be333428df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"400f4952-6b8e-4976-8b13-0d7392f70c9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 20:55:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a2b0e00-1454-465f-87fd-8728036de758","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 20:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:00:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e16677b-3330-47c9-b015-e2d3301d5668","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:05:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"89b27986-4d49-4346-a012-a9f1bcb6b7eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:10:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ae3c711-dc91-4a61-a017-5e372f143eca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d7914c5-8014-4c53-8e39-83f62f261ded","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:20:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c638b5ff-5271-46e7-8cab-e946ed071f4c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:25:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6482c65-7149-48a1-a63d-4a38315a454e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:30:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6f4c401-ffd8-4523-ad44-5319c0772d3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:35:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f930c099-86b2-40a0-9ccb-d94a553e829b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:40:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7063fe55-13fe-42a5-a9a4-170236dfbec6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:45:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0dc82b7e-c161-4324-bb85-13364876d79f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:50:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bd400f5-dfe0-4e44-99b0-43289a7d4607","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 21:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20140971-37d0-4fa2-8277-0991a02c00c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:00:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9ddefef-6669-4773-9899-9cf254a69cf8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:05:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"961a9f65-0fc6-49e4-aad5-099a380c9eb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:10:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fae6190-976b-4beb-96a2-a35acc5dead4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a27cd08-cc9c-4395-bf4d-c7b632a80318","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"047f2c2c-69e4-4c10-a549-6179bdc24f39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:25:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"469d828d-c59b-4daf-b57f-1373af165bd1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:30:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82f7ef67-eda9-45b0-ab78-5f0a299b3880","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:35:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"837f37a4-5963-432e-830c-34f1998b5d99","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:40:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00eb4c57-16c0-4419-9058-a1d5c943d078","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:45:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dc1afaf-9102-4bb4-8b3a-25d99bb6e116","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:50:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eaf6c652-f7a8-4cc5-a10f-0b337469354c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 22:55:00","totalConnections":1}
{"durationMs":0.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"434c9e6e-0659-4960-8b94-9a2105c2ddce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 22:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:00:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28fa16e8-8002-4adb-b1b1-0b845f8977c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:05:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f0b5150-6c00-4a5a-a741-a394f03d54e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cc0ad99-3ae5-4b72-beca-c6e1b710ed9c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:15:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e4bcc7b-01db-4127-8273-30ee21809fd3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:20:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"291cf9bb-b337-438a-8bd7-d79ff93634fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:25:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17ebca80-5613-408c-9654-647db6882e96","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:30:00","totalConnections":1}
{"durationMs":2.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d2787bd-bbb2-421a-9502-34e721792b30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:35:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86c6e9cc-133e-4a90-b2ad-072405bc56e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:40:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6abcda64-c656-4f39-a011-fc30646e4f98","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:45:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f59abc2-874a-459f-ba74-7ee7ee1c782e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:50:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c1b1688-f2ff-436f-92d7-7ae782884d42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-10 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-10 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-10 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-10 23:55:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"025076d5-1cf3-4daf-a077-154dcb822fdb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-10 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-10 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:00:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7937d66f-e04b-42c5-b6d3-1f641c7238c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7e7765b-721d-455a-9eb5-3a38f2145977","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:10:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14548db1-88fb-44a0-b569-802e816544ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:15:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea3941ad-6882-454d-be9f-cd8aa36df327","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:20:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f4ffb9f-36fe-46ec-83b7-08bc904975a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:25:00","totalConnections":1}
{"durationMs":1.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c81e7b09-a563-47d3-a49f-2e3b32f03c80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:30:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a41341a7-5064-4b42-9c76-278b14033cc5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5da0be61-44ec-414b-970e-a7825913c44c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:40:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"450cd60f-c4c1-45e1-a9cb-abd81421b7e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:45:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77e1e55a-86e6-472b-84d5-30d34c339890","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:50:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab503215-6ec6-4136-97d3-eaa2d887ff3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 00:55:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bb3c83a-8ae5-41b2-9267-055eb24e4db5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 00:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:00:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f039641f-c682-478d-966f-7918087012bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:05:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e716619-c49f-41f8-9111-96cb8579f006","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:10:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1ddb75b-00ac-4bae-af09-96d4e29e20fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:15:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"484b9522-0ba3-4137-ab2c-412417b6acf1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd38c813-7127-4786-9171-8751a9bdc977","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:25:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f39540ab-2720-405d-999b-a0d604dc0745","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:30:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c55d0c51-8262-4572-8d10-8e7dabc0dc34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:32:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:35:00","totalConnections":1}
{"durationMs":2.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31d9124b-fbab-4df1-8be8-a75ab8c06730","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:40:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef3b7578-6562-4cf7-9f1b-0db4fa5642a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:45:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e973db5e-cf47-4a94-998d-cd731b26d78e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:50:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"477e4f9b-12ef-449c-9824-c3f8e8a6b090","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 01:55:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"881249e8-b23f-4825-ba7e-80520d832c43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 01:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:00:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2f69df8-9ed9-49d9-adad-17e6dbc92719","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06a598ec-930a-4862-853d-d99db3d79b87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:10:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e4dd25d-1c75-4155-976c-738e0da35763","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:15:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebbe5ebd-3792-4e1e-81e2-3e3d6324e375","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:20:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63fbba30-da2d-4d45-9baa-d6554cd410dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45d991ef-f128-4ad4-a1bb-3b4498f7bf9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:30:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5b2c012-7591-464f-bcb9-6b0d06d34ef8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da8d713a-6204-4900-b7a0-ef928a95bb5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:40:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8b77980-6495-48d5-8fca-84f24b42d580","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:45:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d1dd727-63bc-4a26-a29d-aaaee37e8345","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:50:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5927c1a0-3262-423f-b537-e1f8d5f64fef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 02:55:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7b9ee4f-1192-4e6d-add3-d2468471df42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 02:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:00:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b35e1a2-ac68-4f89-a7d9-cd487bbcf148","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:05:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"faaaff74-d025-48d1-89db-af7f889cf8e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b673cb90-4800-4a76-8a19-f6fca1f0de7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:15:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cf5dbc0-ef5f-408d-9fc1-a1d481080465","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"361b4eec-6af1-4927-97a4-cb675e41b78d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"89dfc481-bfa4-4f10-bbdc-a94f6be78457","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:30:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87edb1fd-8237-477c-adfe-12cdde87d9dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:35:00","totalConnections":1}
{"durationMs":2.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e8e2fc5-2e8e-4f4f-be73-8b4867aa1788","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:40:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c473bebd-e8b8-4a80-9718-0099cf2cbe4c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:45:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"decbbd3b-9579-4195-a8bb-a9096d9460cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:50:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"865e6f00-b9ba-4aa5-96aa-59963a2a0a54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 03:55:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"938e3048-f8eb-4ffb-8da8-7802b19aacaa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 03:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:00:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e85ac605-1a15-41be-a359-3e4a632615e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:05:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20d5cc33-ecfb-4b03-8aba-fdf9dc13e885","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:10:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f9f334a-f070-4be6-a94d-c6136b2fed91","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:15:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91f4173d-8509-425c-b42b-06501351ceed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60c0a0bf-e363-4eb2-87e5-659393c2ef5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:25:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"466e9247-12ce-470d-908b-c5a6d2356e2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:30:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73a11b5e-1602-4f7a-8ee0-c660ad8c972c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:35:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df849c94-0f01-4efd-a9f9-3652cdb1da63","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c402f13-3a64-470d-90aa-82a05eb14ddc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:45:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe71cd4f-a22c-4d8a-83b0-d130d919ac84","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:50:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2908c83c-85e9-4d17-9794-717c6b77c1eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 04:55:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4417f4e-d838-45b9-8e4a-5d2654d51302","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:00:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e766286-f69d-46ef-8b4f-3b3817ababb7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2d103e1-74a4-4f60-9a5f-095123558603","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:10:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f3c2c6b-b57e-47f8-aad2-4b8684b92274","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:15:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1747d09b-9119-40a2-be45-9bddab54f27e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:20:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"076e9b52-7341-4511-b63d-a4dfa14a647b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:25:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"645f5dc0-819d-4964-8eff-51714b8f38c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:30:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9537411-b1c1-417b-b983-5bc8a44e96a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:35:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"118cdc78-900e-481c-bb7a-3718871cbd5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:40:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c99bc531-0589-4fc2-b70a-0bf25412fe86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:45:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50e26165-68da-445d-afd9-1607b0e553b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:50:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fda79d9e-5a2b-4c19-a968-8700a033c3d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 05:55:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c683bcf-3643-4198-a5f2-ed87a0b95715","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 05:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:00:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"261610aa-fd8d-4920-83c1-debee321de86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:05:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed04b555-46b4-4956-9c71-8c2bd20e9431","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:10:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9563140e-4072-4ce9-861c-fad21b78b902","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:15:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07e403e7-51ec-449c-9a02-c7aef0e36eea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:20:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51a6d825-8c38-4157-a241-6c7da415ab86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"571838e5-0cf8-4b31-86f9-d4e4a7d39686","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:30:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9307185-a1f9-4d2f-82b9-642e403fff09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:35:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d845a3ff-864f-40ff-b86a-d7ff8bee211f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:40:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"818c8fec-84c8-484c-927c-f9160e069323","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce62dcad-91b3-4dea-a3c4-ecea15c96e57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:50:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b04ebc71-6c7b-4efd-ada2-58aad6f5361d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:54:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 06:55:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4deae8c-9485-4355-be4b-8e0fec6812bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:00:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35f28caa-4c4d-408a-a38a-6c4f8d81a90f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:05:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9350914a-dcdf-4b3e-8d78-18921f4d7850","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:10:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd850992-0bfd-4d1f-ba84-b934e5a527bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:15:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92f98d8a-3db2-4560-9194-9bcaca201aea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:20:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b090b4c-7619-4578-a4a1-f0f215d44afb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:25:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"136026cf-c6f8-4f5d-89b3-fe7c923abb1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:30:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9cf972a0-cf97-40c1-8558-8f46d761182d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:35:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf07a1be-cf0c-4c72-8803-cff62349ba73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:40:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f58b7a52-cb67-4284-868e-e4c406ade481","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9993d0f-2403-4baa-a33b-499d9c52fa91","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:50:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6fc0f80-e50e-46e3-8953-e92b3697158e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 07:55:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b87cf71-088d-409b-ae1a-2d0841c7d852","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 07:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-11T05:00:00.730Z","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-11 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-11 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-11 08:00:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d72bf233-8a0c-4c95-8262-df949661dee0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:05:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d479d0c-cb08-4d33-9979-a6439ff04ed2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:07:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:10:00","totalConnections":1}
{"durationMs":0.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77ef7749-d8b9-4d27-9693-32d49a6651f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:15:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a34cd0da-f4cc-4f11-a863-27b3bbf42a42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:20:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4181b17a-5de8-4453-822c-6f52b7822a87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:25:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3567346-ced9-4b12-84ce-412768476bfd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:30:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a145671a-7ea1-4f68-b5a3-f336a2fa125a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1cece6a-dba6-4508-afdd-8e7b25927892","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:40:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"775780a8-2156-4812-b7e3-dae02569a431","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:45:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d2bf0ab-7562-43a3-942a-0a21e0e39644","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:50:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a914cb5c-1e6c-411a-b353-dc197179fadb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 08:55:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81e82844-1413-4fc2-aa70-a0734d3f8322","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:00:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0bb49e71-b92f-4644-9ffd-bc75f7585e7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:05:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"868b27ed-ff20-4ee8-9cff-ede7db205ac3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b38e0833-3016-4830-bb88-48b2dfb27237","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:15:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99765199-8856-4ba1-9bd0-9caa8ddc9dd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:20:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c5b3e17-c66a-422f-88ef-442e8eccfc3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:25:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ecbd7845-faf8-4f1a-92e6-ce78da62690d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:26:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:29:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-11 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-11 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:30:00","totalConnections":1}
{"durationMs":2.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb6d9659-f365-4911-9d49-20beb807744e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:35:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d82065a0-0e2f-4c92-a0c6-ee56d9305c99","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:40:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac41ac73-2968-4b81-86a6-f4f6de0ff217","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:45:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64e1b14e-0d46-4de7-b45c-e1589f4297a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:50:00"}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ccde3d1-b130-4c24-b4c8-8e30572344e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 09:55:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbf20211-16c1-4ef5-8504-a0b740a0ed56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 09:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:00:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7189ad30-1bc6-48cd-9338-1b54ea4aa81e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:05:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6237ca3f-4f0f-4a7c-b5e0-ac437280bcd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:10:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6bc064f-e3ec-435f-8635-1ddc32093259","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:15:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82aa6270-8342-44ad-afe3-405b02697314","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:16:02"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:20:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"855e2adc-2def-48e5-8e5c-f4a9bc823c4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:25:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02d15095-a14b-4e45-ba01-66b60824ecbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:30:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a2e2ab0f-3ed3-41c1-aa81-b0645b08818e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:35:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7bb30ca-31dc-4045-be8f-300089831c85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:40:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91631cb7-462b-45db-aa63-15813c17a6d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:45:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2836cb66-5249-460f-86ea-641ccfa18ac5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:50:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe13a7ce-32d3-40b6-bb90-5c1280fb1cb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 10:55:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"956e7bba-be46-4611-a0b1-130d13aed0f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 10:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:00:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44be1936-8172-4330-bb0b-6edad33e4935","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:05:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e5bbb07-06e3-4ae6-955d-815950d1596d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:10:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aec12e3c-d5e8-4727-8934-136244713632","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:15:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01b65c67-0d0f-4b61-99c8-ff100f6bfc62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:20:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc70c250-cf6c-405d-be5e-29a1ca86e36d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:25:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cb76533-7668-4294-9b2e-ca12dbe33894","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:30:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea59bbdf-ed20-477b-8678-f699e52a760e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:35:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f483e128-3a2e-4b3e-bca1-b27c48b487db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:40:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcfa7c2d-b631-4704-b06d-4322176a2955","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:45:00"}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb1b6e9d-a7f8-4e2d-8562-c60f0d0ea5ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:50:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"015eef90-2ab6-45c6-877c-86de468e803a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 11:55:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80314fcd-585f-4ee7-b783-b650110f1df4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:57:00"}
{"durationMs":1.2,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd89e0ac-4ea8-46ae-9ecb-2ea7c899d90f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:57:01","userId":null}
{"durationMs":16.71,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ae9477d9-86af-48c5-9951-3fc3d4ae003e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:02","userId":null}
{"durationMs":1.35,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"b228b185-016f-4234-952c-8cac073cd5ec","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:02","userId":null}
{"data":{"from":"/","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":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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":null}
{"data":{"from":"/","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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":null}
{"durationMs":3.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0067abe3-2e44-48e6-92f8-de34233e7d06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:57:02","userId":null}
{"durationMs":1.59,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"33f5ccf5-cd0e-4258-8bb7-97125795911f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:02","userId":null}
{"durationMs":1.32,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"16f66850-b2a2-48f1-97ff-287dc40a6c66","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:02","userId":null}
{"body":{"refreshToken":"[REDACTED]"},"error":"jwt expired","ip":"102.0.24.50","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-11 11:57:02","url":"/api/v1/auth/refresh-token"}
{"durationMs":4.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"ab9e43ac-62d0-4378-8d59-eaa4544745cf","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:02","userId":null}
{"durationMs":1.93,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"04e0c1bc-ca54-440e-a6b2-18c5accbff65","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:03","userId":null}
{"durationMs":8.07,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"199e5e2a-9a34-4953-9661-2fe83d0f7e5b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:03","userId":null}
{"durationMs":3.38,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"40564a58-01af-4155-9b8a-cd1e77d9ea41","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:03","userId":null}
{"durationMs":1.81,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"bcff984d-7c5d-4e97-841d-4e58e7ad5a6c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:03","userId":null}
{"durationMs":1.83,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7d485c78-19a9-49fd-9421-5a6ed8adbb1b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:03","userId":null}
{"durationMs":1.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"bbddcb83-aff5-4dca-8067-ed008723b49c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:03","userId":null}
{"durationMs":3.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"e023f2e0-afc8-4885-ad71-d2c3670210bf","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:03","userId":null}
{"durationMs":1.76,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"72f22566-1834-48c0-afe5-22b3b0465c9f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 11:57:03","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1054.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1055.8,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1081.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1081.7,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":389.4,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":421,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":421.9,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":422.2,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":423.3,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":424.1,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":424.5,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":425.3,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 11:57: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":2.6,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"10782343-d38d-48a9-b419-6f30a513a589","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:57:04","userId":null}
{"durationMs":1.17,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"543e08f2-47d4-4408-a068-3f160dad8bce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:57:04","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":18,"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-11 11:57: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":null}
{"durationMs":1.99,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6ca1d05-7b22-40d2-9287-30a5677cc50c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 11:57:07","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 11:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:00:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b93521a0-8022-4e68-89ae-df1df02caf30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:02","userId":null}
{"durationMs":0.86,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a0d3262-fd9c-4826-aab3-89132ec8246d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:22","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":72,"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-11 12:00: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.9,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"312c453d-8bc4-41a7-b00c-84c6e52edcae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:35","userId":null}
{"durationMs":1342.6,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"42ad29eb-6856-4d33-9ae6-cac18a1e8b70","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:37","userId":null}
{"durationMs":51.32,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"29ce500b-41ca-464d-8f6f-7f956bec8845","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":254.26,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"bbe1cebe-c828-4e11-ad53-384e569e4bcd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":368.94,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5bf7e798-f7bd-46a2-b74b-b284dda863c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":340.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"08ec16b2-331a-4f36-81b0-bfc0291f254f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.62,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"4ef20a66-e46b-496f-a93b-451a95983d73","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":202.56,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"76cf98b1-3f33-466c-b876-f76ce9b93beb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":228.65,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"89b58904-fd63-4288-bdf4-deb21e1c95be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":254.19,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"09889c5d-2c61-4ebd-93aa-a4d2d90ceae8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":253.55,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"30c9a762-c05b-440b-80e9-6f9c648fdd4a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":263.7,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"16a1627f-1336-4f5b-844d-2979660d6b7b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":275.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"bfa956db-98b2-48fe-be5a-51adec4224c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.42,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"fd53b87f-6b9f-4930-a7e1-522cb4dc00a9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.48,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"15f718de-4ae2-46fc-a644-758c1af4e485","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.42,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"8b3ad32c-ec32-4477-ad1b-47adbf8baa54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.03,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"74360bbc-7ca5-4601-9a63-f2a92f9ebe37","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.17,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"383a4bf1-2392-4e01-8b35-6cc997cf1e42","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"ff6599f8-b07c-4e50-b012-7a2c4dcbe903","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.43,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"0088cd58-9f4c-424b-91b4-4c3bd1e2c08f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":2777.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-11 12:00: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":"/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-11 12:00: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":"/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-11 12:00: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":"/school"},"durationMs":511.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-11 12:00: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.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"23b115e0-567d-4ade-8d18-f6e6c75ad6d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1245.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-11 12:00: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":"/communication/notifications/unread-count"},"durationMs":1370.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-11 12:00: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":"/communication/notifications/inbox-count"},"durationMs":1371,"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-11 12:00: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":"/school/mpesa-config"},"durationMs":2130.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-11 12:00: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":"/communication/notifications"},"durationMs":2394.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-11 12:00: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":"/dashboard/stats"},"durationMs":2256.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-11 12:00: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":"/dashboard/attendance-trend"},"durationMs":2268.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-11 12:00: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":"/dashboard/revenue-trend"},"durationMs":2269,"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-11 12:00: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":"/dashboard/grade-distribution"},"durationMs":2385.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-11 12:00: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":"/dashboard/recent-activities"},"durationMs":2389.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-11 12:00: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":"/communications/sms/settings"},"durationMs":2485.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-11 12:00: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":"/communications/whatsapp/status"},"durationMs":2530,"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-11 12:00: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":"/school/terms?isCurrent=true"},"durationMs":2967.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-11 12:00: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":"/academics/grade-levels"},"durationMs":2977.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-11 12:00: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":"/reports/dashboard"},"durationMs":2978.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-11 12:00: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":"/academics/streams"},"durationMs":3328.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-11 12:00: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":"/academics/learning-areas"},"durationMs":3344.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-11 12:00: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":21.63,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de2369f7-8a7a-4fad-b6be-c4327f730f8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:00:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b31a0d83-b148-4479-8f0a-c46a25c9fb29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:10:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"834bdf31-7da3-43ec-a510-969b42be7bc6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:11:00"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 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":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 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":null}
{"durationMs":1.95,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9fb70dcb-bc70-4841-8ae4-91444e948541","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:11:33","userId":null}
{"data":{"id":null,"label":"Register your school","name":null,"type":"button"},"durationMs":10,"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-11 12:11: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.02,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6d87db1e-63c0-4d76-84bc-b85d6dea828e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:11:35","userId":null}
{"durationMs":1.1,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c414c178-9a36-4d62-96d5-4c00d6a1241e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:11:53","userId":null}
{"durationMs":1.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c15668b-332c-4f76-92e2-6fef545e25fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:11:57","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:12:00"}
{"durationMs":1.43,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"927654a2-7946-49d6-85bb-e9696d435e1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:12:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:13:00"}
{"durationMs":1.45,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe699551-112c-464f-9212-2a205990f335","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:13:26","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:15:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69735426-c5c4-4763-ac3f-31d949ad07f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:20:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b746da1-8689-42be-a982-d942a705172c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:25:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e98abcdd-7831-423a-a9c1-a228145b28e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:30:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4ad83153-115d-4ba7-97e8-2fa7a7eb3b75","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:35:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba093164-e7db-4b94-9463-b0f5b2ebae4d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:40:00"}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00b1ada3-8c32-4bd9-91ee-bab45ceb9b08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41dcfd2b-ea8f-41e0-a9c1-7289e49c8915","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e908e4e-7aca-4362-b218-308af0ec8c22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 12:55:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe6dcc47-8a38-4614-8367-5706f699cdf8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 12:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:00:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c97de326-5791-4c4a-92c2-11d034b1f707","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:05:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92d98ce3-a70e-4443-927a-93f9e687af39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:10:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d841d739-2df2-45bb-b555-b9f5502d688f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:15:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b690e66-96c2-4bee-943c-8b566a6e5db1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:20:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9c658e1-6fdf-4ea1-9a03-88733ac44745","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:25:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0210de0-b68b-4760-b365-db533185b526","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:30:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e67e4289-16d6-4871-af31-95a4b0806d01","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:32:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:35:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d090ef7a-b8aa-4933-bbb6-908a7171d19d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:40:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c8befc9-3c4d-4303-bf1d-20f4df57eabd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:45:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b6dcd70-1cb2-4c28-bf7a-ec7c2ffdab54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b1b606e-2da7-4607-bb24-2f1887922399","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:55:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8da3811b-fd46-41c8-9afe-d880e67c0b27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 13:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:00:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3c255ea-937b-4a1f-97d8-6330619ba85f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:05:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25d747bf-50fb-4468-a2f8-9e23764d6297","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff4bb0d7-bff5-4b33-97d1-36454efe55f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:15:00","totalConnections":1}
{"durationMs":1.49,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad367f53-60d9-4319-b089-d6a90c51ae4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:15:00","userId":null}
{"durationMs":0.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31614c7d-31b7-453e-8dc5-bd5fdb29d4f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:20:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d1a369f-4852-42ef-b828-603d7ad4ec43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:25:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"379b5220-5bcb-4c70-8978-f45a70aad11c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:28:00"}
{"durationMs":0.99,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77d99801-0535-4260-8e58-ab16014ebe09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:28:28","userId":null}
{"data":{"href":"/forgot-password","navId":"1789126131588-326533","text":"Forgot password?"},"durationMs":null,"event":"NAV_CLICK","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Navigation click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:28: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.91,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93ea04e8-6643-4516-bf4d-67885ae784de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:28:58","userId":null}
{"data":{"from":"/login","href":"/forgot-password","navId":"1789126131588-326533","text":"Forgot password?","to":"/forgot-password"},"durationMs":2013,"event":"NAV_PATH_CHANGE","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Route path change","path":"/forgot-password","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:28: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":"/login","navId":"1789126131588-326533","to":"/forgot-password"},"durationMs":2013,"event":"NAV_STALL","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/forgot-password","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:28: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":"/login","navId":"1789126131588-326533","to":"/forgot-password"},"durationMs":2112,"event":"NAV_RENDER","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Route rendered","path":"/forgot-password","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:28: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.64,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"92daaec1-7cbe-47e3-ac5e-9693225322ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:28:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:29:00"}
{"durationMs":54.16,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/forgot-password","requestId":"fb85e533-0e8f-450b-92ba-12500e69ab0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:29:07","userId":null}
{"data":{"id":null,"label":"Send Password Reset Link","name":null,"type":"submit"},"durationMs":190,"event":"UI_CLICK","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Action click","path":"/forgot-password","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:29: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":{"method":"POST","status":200,"url":"/auth/forgot-password"},"durationMs":445.8,"event":"API_RESPONSE","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:29: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.35,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a83e0716-0ebd-4936-bbb5-1b8f0f65bb29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:29:08","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:30:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"530d36dc-8e92-49bb-be42-7fdfb8054804","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:30:02","userId":null}
{"data":{"id":null,"label":"Back to Sign In","name":null,"type":"button"},"durationMs":33,"event":"UI_CLICK","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Action click","path":"/forgot-password","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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":"/forgot-password","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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":"/forgot-password","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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.15,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9d310f4-3047-4d41-8b6e-e5d1351aab04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:30:15","userId":null}
{"body":{"identifier":"leviticusbarasa8@gmail.com","password":"[REDACTED]"},"error":"User not found","ip":"196.96.234.233","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-11 14:30:27","url":"/api/v1/auth/login"}
{"durationMs":120.25,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"e381d020-7b8b-4aa6-a87d-2ef1fae94420","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 14:30:27","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":319,"event":"UI_CLICK","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":789.1,"event":"API_ERROR","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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.2,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc5ab627-d5e8-4009-accf-199b58e146af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:30:27","userId":null}
{"durationMs":1.24,"ip":"196.201.223.4","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a68c5cd7-bb49-404e-9117-e5f8c550bf31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:30:29","userId":null}
{"body":{"identifier":"leviticusbarasa8@gmail.com","password":"[REDACTED]"},"error":"User not found","ip":"196.96.234.233","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-11 14:30:33","url":"/api/v1/auth/login"}
{"durationMs":12.74,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"37908b8b-bc87-42da-bdd2-cf5d76d5d9f9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 14:30:33","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":67,"event":"UI_CLICK","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":350.8,"event":"API_ERROR","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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":2.44,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e4fe921b-06cf-412f-a7b7-4ceac2a0399a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:30:34","userId":null}
{"body":{"identifier":"leviticusbarasa8@gmail.com","password":"[REDACTED]"},"error":"User not found","ip":"196.96.234.233","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-11 14:30:48","url":"/api/v1/auth/login"}
{"durationMs":11.6,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"b6c88f9f-062d-425c-873b-f97cb00335dd","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 14:30:48","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":68,"event":"UI_CLICK","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":450.8,"event":"API_ERROR","ip":"196.96.234.233","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 14:30: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.05,"ip":"196.96.234.233","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"596e4cf3-25e4-4a5a-a28d-5f3f7cc3d742","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:30:49","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:35:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32172ac8-cf96-43eb-94c1-bf222eeaef8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:40:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"465c7efb-501d-4857-bf4b-361da7ca6ce6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:45:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45f4ae16-4acf-4197-9e3a-3937892a00c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84dc8022-3749-4e29-8f3a-0d281a1e0157","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 14:55:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0254a4e8-c2ea-4137-b5c4-70825b99b6dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 14:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:00:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d18c537b-52da-4fc9-b26f-0e3abb00f009","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:05:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75f5f08b-99c8-434a-8272-9c823a3020dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:10:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5dfbc4b2-b025-4a06-a7f0-948ca9d33f36","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:15:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a41271c-9fa6-4fb4-8e15-75da5c79e05d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:20:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b66d75f-9624-41dc-abf1-73b3dc6dcc73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:25:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1094b764-ca2e-4680-9382-34d70ed02ebe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcf0984e-f655-4c22-aa17-a10d6d053e3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:35:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:35:01","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1bdfbc3a-1f3a-48d6-abcf-2a69a7d981a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c62550a-e9ca-4a6a-a928-83d839e0e020","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:45:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6356d47c-56c3-4b08-bce3-bf75f83a07aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e883531-bcba-44e8-ba76-83738caa5555","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 15:55:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f63d448a-e1db-41d3-aa19-41c1b36d7c25","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 15:59:00"}
{"durationMs":0.9,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc12d50a-f154-44b4-9e2f-403f81e88d64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:59:29","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":223,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 15:59:42","userAgent":"Mozilla/5.0 (Linux; Android 15; Redmi 14C Build/AP3A.240905.015.A2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":2.2,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"150e1837-8179-4874-95ec-be8818ef719c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:59:42","userId":null}
{"data":{"id":null,"label":"Students Manager7","name":null,"type":null},"durationMs":228,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 15:59:47","userAgent":"Mozilla/5.0 (Linux; Android 15; Redmi 14C Build/AP3A.240905.015.A2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":1.95,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"44e1401e-a80f-4ad0-bf40-573befef7427","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 15:59:47","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:00:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"694db901-3f36-4ee2-8a66-8cab670b7b04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:01:00"}
{"durationMs":1.67,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"004d40ec-ab06-4c21-b880-9fe9a5658270","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:01:45","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:02:01"}
{"data":{"id":null,"label":"Tables: Search, Sort, Paginate, Export","name":null,"type":null},"durationMs":79,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:02: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":1.16,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc3c1520-02bb-4a88-a170-27bfebdc8006","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:02:16","userId":null}
{"data":{"id":null,"label":"Sheet Forms (Slide-in Panels)","name":null,"type":null},"durationMs":74,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:02: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":1.2,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"21e3f763-4a92-4e77-856a-90ca63ce1801","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:02:47","userId":null}
{"data":{"id":null,"label":"Delete Confirmation","name":null,"type":null},"durationMs":59,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:02: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.04,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"781251a6-55b1-4553-a361-0e40b28e6239","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:02:55","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:03:00"}
{"durationMs":1.23,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e07efc5d-ad4c-4add-8f40-a7f242fe6443","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:03:03","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27bdc2b8-f9b9-43fb-bbe8-c31d0f3ff958","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:06:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":88,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:06: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.68,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"78a3360d-112b-451f-9d90-2105df58524e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:06:23","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":74,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:06: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":null}
{"durationMs":1.09,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c118316-c23f-4849-83c5-1b8bc1e1e471","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:06:25","userId":null}
{"body":{"identifier":"admin ","password":"[REDACTED]"},"error":"Invalid username or password","ip":"154.159.237.32","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-11 16:06:25","url":"/api/v1/auth/login"}
{"durationMs":1409.78,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"bdac8d20-a87a-424d-8cd2-74a14f30f793","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 16:06:25","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":2101.1,"event":"API_ERROR","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:06: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":2.26,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c3241fcb-3dbb-429c-8d30-e2cd4cca255b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:06:27","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":82,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:06:43","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.18,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"45cf4d54-cbd7-4b20-ab09-5dbc2c5c2255","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:06:43","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":59,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:06: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":2.01,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2ecc817a-73bd-4410-af1c-1872dc237766","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:06:45","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":56,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:06: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":1.1,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"985d4ac0-47ad-450e-b5c9-00ee68f0355f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:06:47","userId":null}
{"body":{"identifier":"admin ' OR 1=1 --","password":"[REDACTED]"},"error":"User not found","ip":"154.159.237.32","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-11 16:06:50","url":"/api/v1/auth/login"}
{"durationMs":24.13,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"354ee4cc-5250-449b-8762-b63d832b9f78","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 16:06:50","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":48,"event":"UI_CLICK","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:06: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":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":663.1,"event":"API_ERROR","ip":"154.159.237.32","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 16:06: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.09,"ip":"154.159.237.32","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5c0246d2-bfe8-424f-98e5-08b59f1ead92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:06:50","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:10:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f14e2e75-701c-4715-a9c3-8da6844bcde7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:15:00","totalConnections":1}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a0616eb-0694-48eb-8f5c-ca4c322e255c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:20:00","totalConnections":1}
{"durationMs":0.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"669125f0-21fe-4d26-a758-cf4bae60ece3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:25:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d63d0982-8be1-4b08-bc24-cae3f34f643c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:30:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76f6a376-179a-4363-89af-dce048a96eee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:35:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d4bead3-f9b5-4532-9661-ba26f8d949bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:40:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e8eae2a-2a68-4a97-a80f-18b2eda1e3f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:45:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b318ff5e-146c-4311-80b9-238bb7ef6ecc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da88f1c6-7fe9-444e-b7cd-ed3db73a568b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 16:55:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc1d7922-98ea-4213-938d-66669cddb18f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 16:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 16:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:00:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4f9945f-6e8c-4060-a473-951fd0c6c95f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:05:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6a6c259-c913-433f-ad1b-8ff54b197030","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:10:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d035e041-0b13-4821-b362-86970db7c9c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:15:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0052f316-af85-47ce-a1b0-b90c012c9009","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:20:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb9d0517-c555-4843-a82b-a2081725858c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:25:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a36d597-ac41-4e89-bceb-aab1769310aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00b4d268-d177-4f27-af52-fe3d05824baf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bec0720a-fabb-4b00-a396-373bf27deecf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:40:00"}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c5dd525-8733-43a5-ab2a-8e7535ad24c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:45:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11f8aa6b-b4d6-44c2-92c0-e98e7fa06870","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:50:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a279fae8-58f5-4d8d-9b33-d218322c07fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 17:55:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71c186ff-0f8c-456b-af3d-5961c09a2614","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 17:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:00:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a79e58c-5abc-4ea9-9b7f-3202360747d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:01:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:05:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c287f96f-4939-4d83-a7e5-a6a40f5454be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:10:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2abbea99-38d3-43f1-ba15-566e88514d0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:15:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"855ef42c-7f76-477a-9656-12681d1321d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:20:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d726bc5d-7bb5-4885-b702-eb67b2d9e7d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:25:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a95b72b-b81c-461d-80c4-063ce53bbaa3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:30:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccfb13dc-3056-4994-be00-5e4733908c60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7dc2af5-2b41-4afd-b5aa-5413bf53855f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:40:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9b38951-4a20-4b0b-a72e-f85011d0e4aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c3afde0-3ae6-47c0-82f8-e1c0bf378d0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:50:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"771ce9ba-52a0-448d-a6a8-617c29413b01","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 18:55:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e089fda-688a-4341-944f-6a481495ab1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 18:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:00:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a309a4c-1c01-4a35-bf6b-91d948a1a789","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:05:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d387e531-d949-4d88-8297-fb8c42ee4fd1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:10:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc084397-0828-4a10-8613-3993525ea44a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:15:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2fa0475-ce01-4c6a-8e02-714a7f97278d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:20:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad23afa2-9bc7-43e3-98c5-868787571da2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:25:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5246642-67ad-4ec8-866c-ca68b7b01897","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:30:00","totalConnections":1}
{"durationMs":2.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75692331-a5c6-4f7e-8fea-2f1b1fe8a39a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:35:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fced0be9-522c-4599-8a49-4d4d21a2b04e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7e0a5fb-30f6-478b-9255-1a31cbf145c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:45:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3460793-db98-4fa7-8cd0-81864f0d0c93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:50:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7056b96b-bc81-417c-8437-8688ffd7320f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 19:55:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86fcc161-4f63-401d-9f00-6fa8520443fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 19:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:00:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79f07edd-886c-4fb5-a266-a71a80ac3e77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:05:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92dd4a2c-dc9a-4622-8d4b-912dab243198","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:10:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf8713b5-f758-4792-b727-37e3d1043897","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:15:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10a44664-fda2-452c-a22e-d9895f534812","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:20:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80e2d3e0-f924-4154-a946-849d4e018e29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:25:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b759a6e8-775f-4103-b5b6-b9417dd3b851","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:30:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a97d072-e39f-4136-9382-64b2be238167","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:35:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba704031-2060-4eb0-853e-7c3b63d4d166","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:40:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b712f3a9-65a5-40b6-8136-8110144b18bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:45:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3ddc2ac-341c-4f3b-b548-ddae136cc39a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:50:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2f8851c-02ae-4e50-9ec6-d0a2ef615e95","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 20:55:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61ab3759-e0dd-43c9-975f-72343e1b3c23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 20:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:00:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9e80b11-cf86-4f65-b765-0d715324e0ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:05:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9fd8da7-e5f3-450a-b8ba-d7adaeb67779","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:10:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4b33f58-b52d-41ad-9ced-659d849a873c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:15:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3a5fc5d0-010c-4c78-9b75-a2dcf030bcfb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:20:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7a7cdd4-3db9-4ca6-9d3e-504232c2eb95","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:25:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbf3c45f-94df-4293-9e97-0a066ebf0129","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:30:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91c21fb4-04bc-4959-b46e-aeab1999ddaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:35:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ee36774-679c-46bf-8a4e-6ed7493b4e15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:40:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6b6fab0-b6e3-4e79-8767-a9a8d7790172","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:45:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c45bb64-19df-414f-a91d-83aad599076f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:50:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6e6ce1d-ad49-4b1e-b254-dc474ea6a325","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 21:55:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dda53a60-4fcb-47b1-8c52-9b2fbf487969","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 21:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:00:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1f5882a-5a0a-44d2-91ca-5644d6ac3a27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:05:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a4f1ed4-5945-428c-ad3a-4451be49acaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:10:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31ae75f3-cb01-49ab-b925-2cf5366c36ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:13:00"}
{"durationMs":0.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c183d6d0-3994-4245-9a43-5274840dd89e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:13:15","userId":null}
{"durationMs":3.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"a800517d-c04f-470d-b1ad-5420e0947856","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 22:13:16","userId":null}
{"durationMs":2.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3b70ed9c-3c6d-4a04-92ba-1eef6ac5e76e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 22:13:16","userId":null}
{"durationMs":1.6,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a0fc0228-20c1-41ab-b309-3706d90f84f5","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 22:13:17","userId":null}
{"durationMs":1.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"5a2b8246-a1a9-4f3e-98b0-ddfab931c3dd","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 22:13:17","userId":null}
{"durationMs":1.57,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"b9d86e6c-42ea-4965-a5a0-e36db7fafec9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 22:13:17","userId":null}
{"durationMs":2.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"b8c27b1f-794a-4ba1-89b6-cbba62965b2c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 22:13:17","userId":null}
{"durationMs":2.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"53cb4035-9bb3-49b5-9476-3b4816285fca","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-11 22:13:17","userId":null}
{"durationMs":298.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"061d24dd-87ae-4706-9642-3170003b165c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:13:18","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 22:13: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":null}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 22:13: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":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":417.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 22:13: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":728.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-11 22:13: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":null}
{"durationMs":2.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2380fe82-5dbe-4ff3-a614-0502c69970dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:13:18","userId":null}
{"durationMs":56.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a8036681-5647-477e-b4ef-c7ec2581c592","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-11 22:13:18","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":61.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"12e07bb7-d205-4de7-aff0-eb25b63521f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-11 22:13:18","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.22,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5a35887d-1bc0-45ff-8a2e-d7060de94eba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-11 22:13:19","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":43.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"aa6389e7-957d-48d5-9e4a-eae59294509e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-11 22:13:19","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":208.16,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"ee2b6555-0b07-4d25-bcee-f61e22872793","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-11 22:13:19","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":60.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"49d72826-f44e-4dee-b491-cedfdd15e325","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-11 22:13:20","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:15:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3c640cb-bb98-4586-867e-acf4601f3c8e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:20:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00f71f7b-c600-49b5-bb0a-8c2f332840f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:25:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"483d6f6a-0d66-4c45-a4ed-9b0018b205d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:30:00","totalConnections":1}
{"durationMs":2.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"733e38b8-acc2-469b-a911-746a993d2f20","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:35:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b1920c09-4c79-48c0-a0e7-ed812d19893f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de534033-af83-4a25-9bfb-0d9e11644fee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:45:00","totalConnections":1}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d527d63d-61d2-43f4-9e0a-01aa985e92d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:50:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11a48fae-3e3e-4b1e-b72c-9333d4666e6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 22:55:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1815b91e-14fe-45b3-99fc-89096f2ed8a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:00:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2da211c2-cf3d-4399-ade8-ccff7f53f8d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:05:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f328d26b-bf35-4a62-a8eb-1d1a91f4cbea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:10:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2cb47ca7-730a-47f3-93d1-0aed50522a13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:15:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9561161-eab7-482a-bc36-bed7c82947ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:20:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23db3e47-fc54-4819-bfe1-79ae6fe34651","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:25:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2ffd130-05e6-4a21-941c-2622f549e36b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:30:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62632e3c-3160-445f-a982-9984ebef2353","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:35:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d3f812d-3fa9-47a0-8295-0ea32a4268eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:40:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16d445fe-242f-4fca-81ef-d0a1e7b0dcb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:45:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a081e9dc-9a36-47e7-9a96-a35ccdbabf1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:50:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2ab71f8-a55d-4f09-95c6-c647ec279bdb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-11 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-11 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-11 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-11 23:55:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"064d92e1-7591-48c7-a923-2d440f2ee346","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-11 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-11 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:00:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af5b30c3-08a2-4e9a-a9fe-8f0bc9e26f44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:05:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67094b7e-e94a-4019-b295-a2486da0e2de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:10:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c28070e-adb1-46b4-b2ae-e05bfb04be26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:15:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f3c0a4e-9df3-43ef-9c71-b0e96c23c2d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:20:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa7b917a-6f36-4213-b34e-7b6309bba0ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:25:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6f4df00-f429-4023-8ac2-207fdb024642","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:30:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5783ea43-58cb-407e-8dd4-f5de342f6f21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:35:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4983ff6-9031-445c-bec7-fce141141661","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:40:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d93c704-a865-436b-9f94-04e142cccead","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:45:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"794c881e-eb54-4c83-9939-2002035bd207","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:50:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"59fabb39-934e-4cf6-8028-daba9c40685f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 00:55:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4261306-c984-4b1e-a454-a146dabaf490","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 00:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:00:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"129a13ac-737c-4e2e-8b7d-be146baca24d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:05:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42cc8b99-34a7-4d66-b612-d7e171a8dbb6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:10:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d086e34e-3692-43c5-accd-ec7758675258","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:15:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cfda8c9e-1647-4027-90a9-8fbf9c1ee743","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:20:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff6e268a-369b-4841-95b3-d737664542f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:25:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddcba252-c210-4227-a6eb-44763fafb9bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:30:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd8fe05e-95ce-4aff-9bfe-54ef09fc7296","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:35:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"480589ea-0881-469f-b9e9-a4475cef2c51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:40:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4ce9675-5447-47ae-992a-384c21a565ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:45:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d10d03ac-b326-4933-ae3f-e48eabde84bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:50:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84266dfe-8df6-45bc-916b-ee1647ad4993","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 01:55:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d0d9787-c507-4be9-951b-e486f2b5dd86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:00:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4af7037-cf08-47d4-998c-acbe9a374934","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"402ecbd6-7cc6-4b27-9f0f-566805c60740","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:08:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:10:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2bd5e1b6-749b-459c-b08c-1a8866082136","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:15:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1615222d-8085-47c3-9c07-673ba4763916","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:20:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"abdc1bad-3304-4fa1-b117-99292a2df6e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:25:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ec490e2-b2d7-442b-9b30-486c14616d6c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:30:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ee6133c-01c4-4e52-9172-8640b388ce7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"37cfb5b7-ecca-4ae2-964a-2d58de84a17e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:40:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2db5c2fe-1443-466c-9368-c44e5869d840","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7bb2efd-24c8-48d9-8ad5-564594ae91fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:50:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3cc8e28-d2c4-46a7-b85b-fbe70f8c0df9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 02:55:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ce9e39e-18b6-4349-9f32-98ec82f48602","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 02:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:00:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c388dbc-b954-4e7c-a043-4c7b45c72578","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:05:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe7aab3a-8746-4967-ac97-04fc24ad8b0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:10:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f5220e7-c5d0-4950-a5b1-222719a8f912","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:15:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b54e6963-b9c1-4aea-af85-6a54f656c046","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:20:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"38e3f32c-0737-418d-b072-ecbb3158bea0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:25:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0e121cc-0398-4a3f-ae19-e1af224687ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:30:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0cd75a3-18d4-4185-9285-7ea86d4914d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:35:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b1b24747-b829-41e4-a547-3b82411501fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"516bacc5-f81c-498c-916e-3e0a3e4cfd44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:45:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46cdbcf6-cba6-4625-8f14-7bcb78d486da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"980cba6c-71b4-499f-9296-62880da0e87f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 03:55:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47a1f21c-0a43-4643-9b8d-52e87c5266e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:58:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:00:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6be13d68-5f7a-4890-94f7-31edaca9cc9c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:05:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8487447-8704-45ec-9851-b28afd427596","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:10:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e702d3db-adcd-463b-a13e-d9dc0024cedd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:15:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf6b6bc2-d756-4bcf-9d0a-8a2307ed0163","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:20:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0b0681c-a614-41c0-a0f7-ba6e567ebb71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:25:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b65ac54-42c0-48dc-b888-bf9485b4d5b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95bbc0df-1261-4832-a212-5225ef3521f1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:35:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6add47cd-4495-4b43-903f-59e6aeec5eec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:40:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de221637-4abc-465f-8c7e-cbb1767bbc5c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:45:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a169c4ce-ed23-4321-b962-5e4a7d6ec218","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:50:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9ec7d32-5581-4acb-a94e-0ecf604c36ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 04:55:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da62d70c-980c-4aaa-bc11-686e25fa28f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:00:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0398226d-ca0b-425b-b031-4c83cdeea8ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e241ffa-ad40-4fd6-8e2e-6c3207b45bab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:10:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46b86a08-f3a8-4627-9fa8-147d18a0bd1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:15:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e43394f3-6e0f-4e77-a40f-a64318971667","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46426027-d543-4f20-848d-e4db36364675","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:25:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68ccafd9-50a2-4463-b656-b4bd3c985662","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:30:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87c86ae6-5e04-4761-bd1c-adfa10219da5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:35:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e8f42ba-e3ee-4309-8144-4c85ba35abc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:40:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cda7b871-35f2-40b3-a779-0f39e1514fe8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:45:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72be8e3f-7d30-4360-821e-d918680b44c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:50:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1fe189f-3683-49fd-ac19-f0571094366e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 05:55:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12c11869-6e0d-476d-8a9a-a6365e70c684","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:00:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e88a0fe8-24d6-427f-86cd-6e9c79f00d84","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:05:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6bcfc40b-dd11-447d-953e-f90721f7d4a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:10:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5684a13-5e7a-41d8-be9a-576e0ea91bdf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:15:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"703b1d6c-b819-4a8d-8217-5300b32a67c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:20:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc5ae3e2-4d17-4dbf-889f-41212091cc84","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:25:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b37e3a2-823f-4404-8e6e-ea5be30f383b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:30:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91e955b5-7ec9-4e7c-81be-492620e0f052","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49de2f87-85e0-47ee-972a-2da9b1d43999","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:40:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c276e1df-3e34-4660-ae0c-164632685727","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:45:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23d77758-e36f-4819-a6fd-c9f0d9631ed1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:50:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7fa8b653-e460-40e0-9a51-05c371275f3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 06:55:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48b18e5e-5c9f-4d80-90c8-b82bb242a3b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:00:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47a7dc06-a84b-4463-a659-f734ba228f3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:00:03","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:05:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7263a7b-c36b-40cf-a5c6-b8d6122d1362","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:10:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04c97a0a-c4b5-4d64-a259-3939031f6143","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:15:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51387b90-d1a8-4fe1-9df1-29cc88018024","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:20:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fb04180-b52c-41c1-b61b-3f353b04bc34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:25:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95952c47-dd21-4434-a565-0161dc5b6a4d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:30:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"061038ad-d39f-400c-8fb2-eeaa2834e77d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:35:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9faa46e4-48ac-436a-b479-79376af31491","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:39:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:40:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2b97d7b-dba8-4464-9fe1-3f737c02e245","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:45:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1285c82d-1f33-404f-8b1c-b29beda9697e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:50:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80751289-65bd-425c-92a1-dff7dddfb42a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 07:55:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c749687-a6dc-49e1-9a72-eccff488a532","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-12T05:00:00.002Z","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-12 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-12 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b01044-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b21c8a-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b1253a-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-12 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:00:01"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8524a6d-1c11-4298-aa31-2e38a2f62d8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:05:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6f2d167-1507-4e20-9c8e-c779424523fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:10:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e95300c0-e672-4d4c-8b4b-fbf6c4f09182","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:15:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d671dc9a-70ea-4a3d-b746-15fcc01e754f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:20:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f48cb1c0-accd-4d95-b574-6c58c01e8f81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:25:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29480274-ccb5-441a-bcc4-34c3e396d8c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:30:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71648f2e-a617-45b2-ba8d-30317ee71f59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36aa83da-2f19-4c55-b640-0a15454b67d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:40:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6385c8d8-dfdb-4130-a557-d28caf8ad693","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:45:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c689161-0a66-4c51-8851-7329edc1cebb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:50:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67ad84dc-c12b-4844-b39c-8a9242b1ed56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 08:55:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a20f9606-d480-41c3-a0a6-f65a8b5302f1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:00:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50482ee7-d068-499b-b380-83955e75888e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:05:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12d06730-a089-4a20-a3b8-59f4da53aeb7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c085859-2f6c-4bbe-a490-c323c5c1fb7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:15:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e408ca7-fe5e-413e-822f-594fe0a75f94","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:20:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b4c5480-9c38-46c3-92b4-33817b737cb2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:25:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe3ac8fa-a01a-4287-95b4-ada65b566f24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:30:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"730f3412-c5a2-49ef-b975-f00c6d1d4e51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:35:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fae56eb-f449-49b7-b70e-7fd102288282","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00e4148d-28fc-4686-b5ef-82c2f7c444fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:45:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ee72a20-a221-4518-8c2d-b8cecf7b0cec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:50:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7266a01-4365-485a-b5ad-8f3c965dee05","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 09:55:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"88786294-f6e4-4c97-9372-73d899a6baac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:00:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45c83440-fa6d-425f-a4bc-b60fe355bf65","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:05:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4eed0108-7695-427f-a7c0-732ab13eefbe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41ac9572-9543-4618-90b0-f30a30aed4f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:15:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0e9b9bd-2b98-4d83-9b81-7e41d5263f6c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:20:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce375204-c7f9-4ddc-9061-e996824b7e80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"656eb2e1-4e78-4a67-b684-4cb0b6c6d75f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:30:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"230759ae-5e43-4afc-bf82-c740a27b094c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:35:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17403772-b334-415b-bd71-037c34c2be06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:40:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c04b62d5-0832-4827-95f7-ef0a725f2c19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:45:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3c5dd75-0f25-4709-a02d-9111f28d5bfa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:50:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c50f16b7-cee1-437b-8e21-af5a5f8650f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 10:55:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a58f0c6-f931-45a9-8cf0-fc1f5e613e3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:00:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61da49a3-2037-486e-afa8-3521acbc553b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:05:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6cd25339-5bb9-4ede-b34e-7a4dd9f1ef44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:10:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50f13db4-5b23-47e6-93da-ae5255405071","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:15:00","totalConnections":1}
{"durationMs":5.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84a3356c-cc8e-4624-bac3-923149712940","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:20:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e77e35bd-c9f3-4bb8-bb11-00c144e446f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:25:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5d3e4b3-f1e7-42fa-8516-a08262b136ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:30:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8106b8d9-574c-4983-8607-e6bba30bf51c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:35:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0d46789-5a18-4f3d-8db2-e14d45a1f92f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:40:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da45c1d2-4e78-4e24-803a-fc6aae9152c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:45:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fde604c-a2df-45ff-902a-5f17af2a2be9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:50:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14139335-4c26-4166-bc7f-1eba1ce8664c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 11:55:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34954258-611b-4a0d-b547-71d33e2cfbc4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:00:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b87e705d-1aa8-4b39-9542-c6cfffdb0db1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:05:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca861431-b204-4028-a113-16753215615b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:10:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d3c9ccd-8c3f-4eae-a15c-b0eadaf9c414","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:15:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c093d319-1706-411a-aaf6-5cc8b3aec25e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:20:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f540701b-6147-4c77-97d8-23d07c64bdc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:25:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b11d19b-dfcc-4003-862c-44a10e853ea2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:30:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d4ec5df-20e8-42f7-bb64-42de535ecbda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:35:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9265c4b-4bf4-4d34-97bd-00b5f3a451ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:40:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1840df8a-a1f8-4926-8d9c-8f031e9c4bcb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:45:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27b400ec-c867-4db1-8d37-ade057f0490d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3ff460a-dac3-474d-a74d-367935e4b11a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 12:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"150081b0-333a-48dc-871a-fd89a539f677","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:00:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ecb4aab8-2f4d-4300-99e5-c10dc4d148a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:05:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5620d614-3e43-42aa-8a44-4ece24d24a85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:10:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5e4a428-5797-4ad9-b786-3996299dc573","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:15:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3683267-35ff-4019-9e80-0f0629c53b78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:20:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d957d40-a8e6-4e7c-b811-a582e834b73d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:25:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c975ffb3-08e5-4f77-941a-753541eadce0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:30:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca24009a-75b7-413c-9ea7-2f552cfd860e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:35:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e26e718d-fbd5-4d71-a85e-5ca297d44846","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84db9f5b-9fe0-4fcb-9e5b-201350cc1ba9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"656bfb60-ac65-4fce-9050-ea1f5f578728","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:50:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad0d72c5-3a3c-4ef1-b952-5aa1c9acd228","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 13:55:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a770276f-a79c-44cc-a478-c36e3794406f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:00:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a48c5dc-b269-4c36-9ffb-5fc569679f07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:05:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de7e3257-5cf4-4a76-816e-c9ac576b0647","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:10:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"117e58de-fb36-49eb-81a2-2bd010b200f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5bbadea2-6a14-4a81-93c5-dfbea3c3e3e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:20:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"018d74f9-638c-4f99-9ed8-de5fd7ce1f19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:25:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3615907e-1a2a-476c-9645-5be241975fae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:28:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:30:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f51f15da-c82b-451c-99e9-7392c709e2ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:35:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b49da7e-41ba-4f5a-955e-57fcf82f8abc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:40:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8caf68b-12ea-4dc1-843d-693e74cc1763","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:45:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39875838-fd64-4d97-9849-57ea84069ce5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:50:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"274367d4-cf7f-48b9-9344-8a19704b322c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 14:55:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28bc6e2e-4355-4de9-b0a3-06c06e5006ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:00:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c98bbaa3-1e8a-443c-a582-e0e18cfecbe1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:05:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d2f4eb2-0d0b-4052-bf76-49feada19981","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43665266-7ee5-4dbe-9da1-b8cf033a6240","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:15:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff545160-4b6b-46ae-86a2-0fbea5cbc45a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:20:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6b986b8-bbf6-4203-987b-5cc0d183e4e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:25:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2119e49-77de-49a8-91ea-b983ce03d6bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:30:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"294ad9e1-8ad6-4f0e-8828-43d0510114ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:35:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"115e445a-5633-40ed-9a14-de705a54f455","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:40:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"201f4da0-fe72-4524-ab74-368a7697a0fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:45:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4868c61b-a052-48bc-b66a-9a2fe6b9ca46","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:50:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d078743c-26a8-4dd9-b174-884dbcd27ff0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 15:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 15:55:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5283a955-96f9-464c-8092-fc30014ab964","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 15:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:00:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e45c9aea-93b3-44f2-8490-939dedb1f040","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:05:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fdfefd1-4482-4cc1-95e3-d18e50cda7d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:10:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3bc1d23d-b4dd-478b-9661-7112c8739e6c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:15:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5268e8a2-ccff-4378-9137-7379836a9070","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23351ba6-7731-4c1f-97b3-e7771f6c7251","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:25:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a2d45d6-046a-49c9-a509-b8c6e72dbb33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:28:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:30:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e892dcb1-3ca2-4b14-8e87-677f50d58101","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:35:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51fa38b7-e229-47fd-bdff-fc5003716f47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:40:00","totalConnections":1}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db92d872-7e02-4030-ab64-ef400ebcdbcb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c76715d-6d0b-45ca-a07b-d9696f3232a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:50:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae832c8b-d0f5-4be4-8836-5ce4286bb592","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 16:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 16:55:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d2d0a1d-a890-4405-a516-6cd4eac60c15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 16:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:00:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c72f90b-a0ce-4947-bc2d-e29a56983a24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:05:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98c3a6ba-cf00-499f-949e-994b69999874","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:10:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f60fbfe9-5687-4025-98f1-f7d286022cf2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:15:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"884d7b02-1fb2-42ac-908f-3558d66dbbf4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:20:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e68bd8f3-f8bf-4084-8ff9-6301c6576925","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:25:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7aca2486-274b-4ef4-b01b-e8ae5f7b5c3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:30:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91482bd0-ac17-4ec9-8da8-08efee929194","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:35:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21bd51d3-74c8-4c9a-9353-7eed6d49d472","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:40:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00764c76-c71c-4c12-9601-410df51ab5bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:45:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90ac63a4-33f0-4d69-8edb-fabfb33de508","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:50:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bff8568-1480-4dd5-93aa-ce015b429612","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 17:55:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c59f3090-10a7-4d2e-afdd-cef29e568e04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:00:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c93f14fd-c9d3-4c33-979f-635e8a460ac0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:03:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:05:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b5f281b-33b0-4cb6-a311-98591c4d15ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:10:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8258879c-5022-4d5b-a471-50591f67f2fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:15:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d84308bf-6642-4c32-aac0-379929ec27ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:20:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0eb41315-2379-4e0d-b781-9cb8f7ffc235","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:25:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b89b41f1-918f-43aa-89c4-33915f8ee32c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:30:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40bc1281-4792-4970-82c1-e5e646d4eb6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:35:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d365b28-c715-496e-8c00-780c2c13615d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:40:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d04d566b-ce51-4aed-b2c2-1c39588bc810","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:45:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1eb83dd2-49fe-4b47-a8eb-fa1bf1aa3011","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:50:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0022c8ae-d0a0-4344-95fd-0da3555a3d33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 18:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 18:55:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1241401f-1856-4855-9614-538e6bdf0672","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd35f078-070a-4ef7-acaa-cc8918b46bc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:05:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93b6be76-6b40-4bd7-91d5-7fc4fb42c25d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:10:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6edccbab-5bf1-4157-931a-efe0e13cba79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:15:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1707603e-c5a4-4ef7-886a-54baa0d23e90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:19:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:20:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a361200a-a0eb-489b-877a-9420a3b35de7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:25:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e36531d-a63a-4a49-be6a-38ea9bf4dcc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:30:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d20a2742-3693-41fa-b1d8-096bdf0c364f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:35:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4de4d48d-74ce-4c05-8492-d9d472db3d24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:40:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2720066-6c63-485d-a11b-ed544c678b19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:45:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96c1295c-7e72-45d0-ba7d-a2f12237a52d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:50:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"501b9915-1617-4cc1-b64e-0aa108c2b80e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 19:55:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e27c8f47-afac-4ce4-b2a3-8e270576787c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 19:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:00:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66797003-92a8-406b-b54d-396dc00fb0d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:05:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0b39374-ff15-473e-9d94-b34f86a1101d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:10:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a10fcac-2938-40e3-8e8a-a91cd911bc68","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:15:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:15:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:15:01","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a52a38af-c749-4681-ba8b-6b1e2c2398de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:20:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f12d178e-6a5d-4e19-9e06-99088c5323c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:25:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4dc9a635-09f0-4a22-aee2-8222802b0fb6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:30:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00f47a88-6319-4e1c-b1f0-65ad9728054c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:34:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:35:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8cec8929-898e-42a4-b8d9-a99eaa94fe6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:40:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09e00744-0576-488e-9d83-286092876761","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:45:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9227cd1-bd7a-490e-8dc9-d91ccbe88f9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:50:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa0b76f2-c7c4-4190-a2c6-46406f2f39da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 20:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 20:55:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8743556e-bff8-4cf9-af86-1b5f12730816","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:00:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe084ac8-820f-4604-abe8-a12730e629c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:05:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22d8f93a-547f-4ec0-ad07-0ec15a69a8dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:10:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45b9b61e-c4fd-4c6a-b1bb-db326a5ba487","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:15:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aeca40d2-ec0a-4559-8c27-3b09f9db2749","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:20:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5af90819-e178-4f9c-8e94-8b7d6aa7a560","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:25:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b1146b7-cefe-44f4-a2ec-606189312871","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:30:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79c9d11d-e66d-4d2a-ba1f-00a605f6b476","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:35:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ede08dbe-f32e-4006-bd20-ad0bad3866c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:40:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4403b620-2ca2-4cb7-9031-31f68e76d689","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:45:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a494e5a9-914e-462d-a2fc-21fe46aa6614","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:50:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0baae4e5-477e-4ea4-8c60-63234b8e80ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 21:55:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42acf105-efc6-4601-a95f-b4bcb2f593c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:00:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d182419-0d3a-4cd7-86a9-7f1a1dc5d242","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:05:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6cc51d37-6cd0-454b-bc5c-906a12ccac10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:10:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84b63a73-5995-4f0d-8805-1b661268013b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:15:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f567120a-9be8-4d1b-827e-93feac63a73b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:20:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12cedcad-6e7c-422e-ad74-ef29764b24f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:25:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11739499-4190-4ceb-b2c0-df7e70cdb06a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:30:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"136f7dde-eb28-4a91-9273-9bd5220c2f7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:35:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b66151b4-a51a-4a4c-853b-568a690d6fc0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:40:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f065a9c3-4e14-4662-8848-b6401f06279a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:42:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"930b0efe-5753-41de-adeb-9c5fb7227f7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:50:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ca599c2-7bed-4893-8aab-0fff2da69540","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 22:55:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32f268fe-ae64-49df-86ff-a1121e25b65d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 22:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:00:01"}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fa7f1e1-6051-42a4-819d-259613484f2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9cce0b4-f8ea-4458-bb34-23f98df341b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:09:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8da7bcf9-4971-45ba-bf12-6d642ea66875","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:09:34","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:10:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c0c6951-e7b0-4095-9ca0-4ccffdcd8de5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:15:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7715506-119d-4038-8413-59ad452bb962","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:20:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b7f55c0-64b1-4beb-9ffb-f1e99b8b3c79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa8dd92b-f4ae-4970-9289-d9eff9b0805a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:30:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb43070f-a8bb-430f-923e-eb7966d8c2da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:35:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8325451b-a2e3-47bd-a33f-3cac61674ade","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:36:00"}
{"durationMs":1.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8aa047b-8d75-4c1a-a1c6-7cf14cc343ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:36:26","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:40:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fdc7b37d-1db9-4efa-a59e-2cd56f70ca61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:41:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20a587c8-df83-4045-a6a7-42952911b886","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:41:15","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:45:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bceed45f-3394-4d0f-acec-f43d40a86738","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"835f478d-ae50-4595-a329-f432951cf270","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:52:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3da73f6-adfa-49c1-9803-4adbd9580a44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:52:13","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-12 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-12 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-12 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-12 23:55:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9283798-80c4-4bbf-8937-2ad556f64df8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:57:00"}
{"durationMs":1.67,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e8e51b2-50b9-4857-8aa5-8e337dcfd34d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:57:48","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:58:00"}
{"durationMs":1.65,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2d89709-4a56-4063-8613-3275a7c133ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:58:00","userId":null}
{"durationMs":0.87,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0246b124-8fbe-4d49-86bb-5870f13dd3b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-12 23:58:04","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-12 23:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17caeba5-eb32-453e-acd4-706894fe41f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:05:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aff250be-f205-4dc5-912b-2293065f64d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:10:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ae360ca-f944-4cf0-ba46-b6fd8b5fd35f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:15:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c2ea18e-1411-47ce-950d-a21f2c225dc0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:20:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bade3946-9a3f-4243-9db5-0682236982ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:25:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21375a3b-52b1-4286-a59c-8f19f78cb573","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:30:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7dbb1618-cb32-4c08-aee5-822a529c15c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:35:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae29d8ca-465f-418e-8a1f-89ca3629fed0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:40:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8113c132-cb5b-48b3-b47f-d6a629fe5d3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:45:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"edfd8863-a07b-4d3a-9fd8-d5561e1392a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:50:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64826948-1170-41a0-999d-87e6d38641ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:52:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 00:55:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc1d9a8c-7093-498e-8e37-44219b69a546","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:00:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20e210da-97d4-4ec0-8f88-825f32bd5cce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:05:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fc68529-a4ef-4bb3-a595-96b64c39c610","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:10:01"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26fed320-5e7a-4173-9744-e3ffe3ca5db0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:15:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d619b58e-4de6-4440-a348-312e1cae712f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:20:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"100be6c5-06bc-4b1b-ab06-17711b133f3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"353f2188-eb38-460f-8b16-82ff410acf96","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:30:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9975637-2d7e-4b2d-9e2c-04a5bf2e7286","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b1012fb2-3b85-457c-b76d-fc6d0fbfb6e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:40:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06e7cc7b-c9a2-408d-81a9-34c58b9421df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e929e5c-7193-4573-9fbf-b892f2901549","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:50:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f07c9728-36c2-41f7-b575-58670480c36f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 01:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf8ffdae-aada-42e0-8874-a059b1c99208","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:00:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34c80374-84eb-4bef-abf2-f2110d8ee76b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:05:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3e6b0f2-b4bc-4fd5-94af-80cfb6bd06eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:10:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2196567-dfc0-47e8-a9d8-56c3ecba53c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:15:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2968d9f-a6f2-4665-b529-dd6e2d26327c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:20:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"352f1ba8-fcdf-459d-9467-f830e9e9c033","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:21:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4a1f9f9-8754-46ba-a752-4a1183f05ee8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:30:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7eec737-2179-4716-bddd-3bddf762c24f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:35:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"562caa2f-0eee-4a2d-a932-190e56deeb7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:40:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc5055bd-3834-4106-9adc-d68be9302901","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:45:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13657f77-921f-4a9a-97f4-7a4688dcd484","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1be6c1b1-ac2e-429c-8347-b5c93d058da9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 02:55:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69a083e0-a64e-4484-98cf-b2ef96c57eda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:00:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a7ea450-14bb-4cfa-9661-d5f036b38d6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:05:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd23a6a8-d258-4180-bdf9-d5007813b8fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:10:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75798a57-a8bf-49b3-aac8-1739dae61a74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:14:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"516f2dd3-9959-4a8e-9e8c-b25ba24af356","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:20:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77c2466d-0f8a-400e-b38d-c8b87d3cd7ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:25:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d51dc8b4-3af6-403b-b95f-1d9178e4155c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:30:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dfe05ba5-0548-4f43-9939-4610987a4a7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:35:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d23dc02e-3040-425a-87c4-8f550b55cdaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:40:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1bea0c2-b857-4b49-bf04-5ead9fce5b3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:45:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8e8639c-e398-4a17-97de-2bd95750948e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:50:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f40ee448-7c6d-418d-bc17-bb4cc78d784b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 03:55:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6d8502c-2901-472c-ba47-4373e5cc0d1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:00:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72315e33-2635-4f94-a3a2-2b8239cc79d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e62b6cb-8f6a-453e-a18c-4d1a7d895988","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:10:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:10:01","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"052674ed-73c7-4d9e-a043-b35af4efdd39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:15:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8caef7a8-5d56-4710-b44a-9ac354fff847","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a516cf6-e0f9-4bec-b843-bc7411dbd196","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:25:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a3406f1-ca7b-4814-b6e5-20dc4f5523ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:30:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49f07af7-e4df-4780-9241-beaa24a6da5e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:35:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93792522-9bba-4991-9b40-fdc97eada683","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64958880-716b-4382-bd92-28e25c94773d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4010bb1e-5d31-43b8-9177-9f6596f2f35c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:50:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61d9b510-5beb-45ed-8a7e-63ddc8bb211c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 04:55:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"453637d6-9491-4598-b3e8-8386d78cc12e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 04:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:00:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25344dad-04b6-4ae5-b770-e2b68e8bed1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"866b192c-a758-44c0-bc49-e372cfbcf742","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"761db401-01b0-4d26-82f6-797de3f9b99f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:15:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1500bda-c5be-478e-b401-23d85ad86336","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:16:00"}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77eaea57-a508-408f-9078-da243c18aad9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:16:23","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:20:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7603299-cfc5-4591-8560-ecf0ed247a23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:21:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:25:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e03f793f-3e4c-4f40-95ab-1745a1d878f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:30:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66116cc5-17a8-477f-be71-98eb168c136f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:35:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26bd9b4e-48b0-4803-8ebc-d87c66d61483","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:40:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52f6d158-6ad8-4280-8254-c90c3602ea78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:45:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5772c0a2-af27-4c79-94d1-6e4f8dbf180e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:50:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6332d16-a380-41ea-ab35-50f393a78a8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 05:55:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a5c8703-8446-4437-b5b0-5b566f55f1bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:00:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d533e79-f2a3-4719-a3c0-42f448784358","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:05:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71df0df0-eae8-48be-9c38-a3c8e6e69089","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:10:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2f07585-fa00-453e-8950-9afcefcf51d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:15:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4522f9ed-2173-497d-b304-0e7b78486929","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:20:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc105bc6-fdb5-4178-8992-ee1bf4ed25d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:25:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"445827c3-4149-44ba-800e-483debea609e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:30:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d486f983-4667-4861-aff4-a007d49208f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd05a3d8-af22-4814-b929-89c09851d539","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:40:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d16d202-ccef-4c43-8f61-ce1165ebc9ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:45:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d105aa5-4c9e-4c03-b969-0c6a34066ca2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:50:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4075a94-daeb-47de-a266-bc58e99bb16f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 06:55:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"59553ad5-e0c3-4e05-90fe-8126f66dbf63","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:00:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73ae60dc-d1d7-47ef-8f24-3383c4f78250","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:05:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a53dfe9-4f33-44ec-a403-ed0baa3a3729","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:10:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02904a7b-8ac8-4567-bba1-1ccbb04be0c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:15:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1eec47e1-0973-4c3e-b208-8d8234ef8967","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:20:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0daac81-082f-4abf-a6b7-5c6d56f02a70","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:23:00"}
{"durationMs":2.33,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b90cb0b4-c821-4522-bece-0731a0747b1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:00","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:24:00"}
{"durationMs":1.22,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f6b7220-35a9-4966-bd25-9a16872b35a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:03","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":16,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-13 07: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":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-13 07: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":null}
{"durationMs":2.11,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"281d0187-cf8b-4c34-a8c8-28070a0c38b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:13","userId":null}
{"durationMs":2280.2,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"87ebdb18-4542-4e0d-b0aa-26653aa5e5b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:15","userId":null}
{"durationMs":76.73,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"162c44f8-2708-4dbf-a848-c3f54f11dc36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.52,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"a0ec2378-27b3-4441-97d3-dd548b4f5704","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":172.21,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"bfda6211-11c8-4128-9d47-12bc9201ca14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":199.43,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"7d95a699-f1fa-49c2-a23d-dbd05eff3560","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":398.81,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"d9d93a65-a2a5-45cd-af9b-bac154900dfe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":2569.8,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/school"},"durationMs":410.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":93.48,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d42d42d-55e6-49a7-89b4-4dd8435d986c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":216.43,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"08dbba37-115e-44c0-99b9-c2d974b3f966","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":221.78,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"4f82f113-ecdf-4d57-8d1d-8739ff8048aa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":260.12,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"558d16af-4987-4704-a5f3-f98d10a5709c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":242.26,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"17eca65b-12eb-4430-8381-3eb6d44ad8dc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":180.47,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"0677c287-7e23-4df0-896d-7ad61ea06752","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.23,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"9d92f0e8-ccf8-4bbe-b87e-315aefd7ea82","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":229.17,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"ff28a13b-2f06-42df-ac15-60fd27ec9faf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":216.26,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"566576a1-5504-4279-992c-f16b12861d18","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":239.04,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"e5336ebe-c21c-4f1a-b892-547ec9988c3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":217.88,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"bae1ed9a-5506-47ab-8c72-03751b5a3648","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":276.7,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"7e492ae0-ef3a-4aa4-95b5-a5c9c6e671e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":246.1,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"161856f9-8deb-4ff0-982e-0cd78a856822","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":258.6,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"e0bb59c5-dcdd-4b68-b295-4845738919d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":874.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":876,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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/grade-levels"},"durationMs":877.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/reports/dashboard"},"durationMs":1073.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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/learning-areas"},"durationMs":1075.6,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/school/enabled-modules"},"durationMs":1100,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/communication/notifications/inbox-count"},"durationMs":1108.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/communication/notifications/unread-count"},"durationMs":1110.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/communication/notifications"},"durationMs":1113.5,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/school/mpesa-config"},"durationMs":475.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/dashboard/stats"},"durationMs":532.5,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/dashboard/recent-activities"},"durationMs":563.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/dashboard/attendance-trend"},"durationMs":584.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/dashboard/revenue-trend"},"durationMs":591.6,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/communications/whatsapp/status"},"durationMs":690.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/communications/sms/settings"},"durationMs":691.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/dashboard/grade-distribution"},"durationMs":692.6,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":25.49,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e5316233-5b60-47f7-874a-2c3e6e53a4a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.87,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"c2374b15-988d-4a68-ac7f-f8d3dcb4ea5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.05,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4e5aa34d-8ef1-42cf-bd2f-fb20cb78c7f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/assessment-analysis","navId":"1789273465543-766608","text":"Assessment Analysis"},"durationMs":null,"event":"NAV_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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","href":"/dashboard/academics/assessment-analysis","navId":"1789273465543-766608","text":"Assessment Analysis","to":"/dashboard/academics/assessment-analysis"},"durationMs":744,"event":"NAV_PATH_CHANGE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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","navId":"1789273465543-766608","to":"/dashboard/academics/assessment-analysis"},"durationMs":744,"event":"NAV_STALL","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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","navId":"1789273465543-766608","to":"/dashboard/academics/assessment-analysis"},"durationMs":794,"event":"NAV_RENDER","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":18.88,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31af0606-38c6-48e2-96e0-e1099fcdbb59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.07,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"cf87ce96-c851-4229-96d3-cd0a4e307540","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.75,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=&limit=100","requestId":"476a28ae-40fe-4f3e-9f0b-a23c1c451b70","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.14,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=100","requestId":"14481079-6313-40fb-9c2f-18b0fee7bf61","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":217.21,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"974f31df-b93a-4254-9844-ec6c7bff1762","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":353.5,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":383.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/cbc/learning-areas"},"durationMs":400,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/assessments"},"durationMs":508,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/assessments"},"durationMs":353.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/cbc/analytics"},"durationMs":500,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":19.33,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"71544ae0-2746-4b98-8ef2-f0bd525bc2e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-dashboard","navId":"1789273475275-219363","text":"Fee Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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.38,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e4356b1-7ef1-4faa-a0d3-50ff0b951ea3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.95,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"c27a02ff-6ea1-44c9-97c0-a6ea925de9ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:24:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.34,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/payment-segments","requestId":"44a3ad36-182c-42b0-a68f-acf7f5a7a839","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":126.14,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/debt-aging","requestId":"9de3ccbf-0e11-4ed4-b96a-fad6aefdfc59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":121.01,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/collection-velocity","requestId":"56ea93ab-3a53-479a-b925-0655e6c6d2bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":147.32,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/forecast","requestId":"736e2671-b205-43fc-93cc-254dbf5cc113","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":195.34,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"9ad6fd53-0ffb-4ea2-9383-41add10f63bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","href":"/dashboard/finance/fee-dashboard","navId":"1789273475275-219363","text":"Fee Dashboard","to":"/dashboard/finance/fee-dashboard"},"durationMs":1253,"event":"NAV_PATH_CHANGE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"1789273475275-219363","to":"/dashboard/finance/fee-dashboard"},"durationMs":1253,"event":"NAV_STALL","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"1789273475275-219363","to":"/dashboard/finance/fee-dashboard"},"durationMs":1283,"event":"NAV_RENDER","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":345.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/fees/analytics/payment-segments"},"durationMs":413.6,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/fees/analytics/debt-aging"},"durationMs":455.4,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/fees/analytics/collection-velocity"},"durationMs":463.8,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/fees/analytics/forecast"},"durationMs":466.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":"/fees/dashboard"},"durationMs":482.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:24: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":21.86,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a2010dd7-012e-4e8b-9be4-a40021db6526","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:24:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:25:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8d2e821-cc23-435b-8f3b-2226ea19e900","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:01","userId":null}
{"data":{"href":"/dashboard/students","navId":"1789273526012-168969","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":28.94,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"421a7e68-1324-4789-8d64-aa8a035cade2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.49,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d24bac56-7f36-4353-8dd3-b51ad2894b1e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.52,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"603c54da-ac68-4925-8284-94570deed91c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":134.01,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"0892d666-cf64-4b69-ba6c-401560c23b99","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":169.28,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"8a318378-6eed-4d28-bad5-77c6966c04ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","href":"/dashboard/students","navId":"1789273526012-168969","text":"Students","to":"/dashboard/students"},"durationMs":1235,"event":"NAV_PATH_CHANGE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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/finance/fee-dashboard","navId":"1789273526012-168969","to":"/dashboard/students"},"durationMs":1235,"event":"NAV_STALL","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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/finance/fee-dashboard","navId":"1789273526012-168969","to":"/dashboard/students"},"durationMs":1318,"event":"NAV_RENDER","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":352.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":424.6,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":453.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":{"method":"GET","status":200,"url":"/students"},"durationMs":511,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":21.7,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"22208342-1acd-48b3-ae7b-5ff82b6e7136","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.45,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"bcc5e47b-54a0-4cdb-8cde-49556113bcd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:25:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":274.54,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"a2862ee0-c1fa-49fd-b10b-44840d1fec70","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":308.87,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades","requestId":"f020669c-2db8-4616-9a80-370832917350","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":356.75,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees","requestId":"19c33cab-08a1-497a-9508-d579d0674268","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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"}
{"data":{"from":"/dashboard/students","href":null,"navId":null,"text":null,"to":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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"}
{"data":{"from":"/dashboard/students","navId":null,"to":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":null,"event":"NAV_RENDER","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":430,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":21.14,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b4ec11c8-d1fc-4daa-9400-65e16a415f13","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.34,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"d681b210-4c05-41e1-816f-24ee373b1e5b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:25:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":553,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades"},"durationMs":595.5,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees"},"durationMs":651.4,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":313.5,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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.14,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1765e9d2-f0d3-4df4-b00d-02a6624f2474","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.7,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e89fb5c7-666b-4705-a299-5d860a94b589","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:39","userId":null}
{"durationMs":96.42,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"c27fcf77-74e5-4d74-b6cf-a2f302880e37","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":112.43,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"3c49fb2c-355f-46bb-b778-ca1336f063a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":218.66,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"65a6c0dd-e118-4266-98d3-a072a3590c16","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":226.26,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades","requestId":"e58350e2-7344-462d-b06d-e56e8cf3e046","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":246.4,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"a1e30797-d6e9-4668-9f5b-e2d12362a8c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":272.49,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees","requestId":"c5e736a9-59e0-48a5-8e20-68b6922463c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":238.87,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"51c09f9a-10fb-4bce-a85b-04646c606bd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":228.34,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b606829f-eb9f-45f2-851f-d9160ac19888","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:25:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.1,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"c382f669-c650-4c15-b89d-16945369f654","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:25:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":469.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":475.6,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":"/communication/notifications/unread-count"},"durationMs":524.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades"},"durationMs":528.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":545.3,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees"},"durationMs":580.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":"/communication/notifications"},"durationMs":580.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":"/communication/notifications/inbox-count"},"durationMs":581.4,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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.62,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8dd70325-bb2c-402a-a560-002d059a2f2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":314.5,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:25: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":15.31,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a0ccafb0-ba21-4ce9-8f4f-f29bdc4c3166","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:25:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:30:00","totalConnections":1}
{"durationMs":2.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d94ec51-6271-4512-8452-ca21bfedf5a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:01","userId":null}
{"durationMs":2.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4033295-3bad-4500-966f-cb7f092c7ba8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:16","userId":null}
{"durationMs":150.37,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9c4c283c-56f3-4567-9628-f39ee7f08c5f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:30:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":139.56,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"69131087-b4e0-4d09-8310-44841383e5f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:30:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1010.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":970.4,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07: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":23.75,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e19db6ac-e9b7-4dad-87c6-151698fa5884","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":0.85,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"139b76e5-7e81-477e-9404-3b6b206f1f95","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:44","userId":null}
{"durationMs":249.29,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"6a986d8b-a643-4e82-80c8-634df9a3f32c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":469.89,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cd7347fc-3fe6-443e-b9dc-eae43a7d48a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":537.38,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"da00dda3-6f84-40ca-a3f4-942522d70e2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":169.81,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"5f895963-e3fb-448d-b4f3-05af70ba5c15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":511.17,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f55f8d60-bc74-4a4e-bb20-a0fcda9419aa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":558.76,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"d2890c60-be73-4fe9-a671-ddcec7fe26d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":597.84,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees","requestId":"da7f1cf6-8a8f-4820-84f6-2b13c95fa35d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":262.52,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades","requestId":"e186648e-4354-44dd-b812-fa30f1e2bf44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":569.4,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":"/communication/notifications/inbox-count"},"durationMs":819.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":835.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":877,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":"/communication/notifications/unread-count"},"durationMs":884.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees"},"durationMs":892.6,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":"/communication/notifications"},"durationMs":893.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades"},"durationMs":921.4,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":34.33,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0b2baa83-d450-494e-b667-a1ef42017338","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.77,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"2fa05d78-e055-4086-8278-61621245bbf0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:30:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":345.7,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.97,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7641143d-1293-4894-8e4f-fed076bd96cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.24,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"99de97ad-d65b-4363-98fd-69a3d529293a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:30:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.56,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"8c5bad3a-ff4f-47c6-b903-2a69844b05c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:30:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-academics","label":"Academics","name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":328.3,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":22.2,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d81bd847-4dd1-41f0-af69-2a70bfadb54e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":313,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07: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":22.41,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"10b68504-c7d6-4de6-bc82-902fdb27ed1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.86,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"f7512b61-6cb9-4504-90e1-e557f5fc87f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:30:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-guardians","label":"Guardians","name":null,"type":"button"},"durationMs":3,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":{"id":"radix-:r6:-trigger-academics","label":"Academics","name":null,"type":"button"},"durationMs":2,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":21.13,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d4c5808f-2d76-4868-8d36-9b213fbb0dce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.64,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"852c6095-06f2-4c48-ae84-f28f0ebbbf5e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":318.4,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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.81,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3d2d385d-40bf-4339-bc75-13dc0c302f86","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":326.6,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":21.82,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"52d04b65-daf4-4547-8c2e-e23eef1f7a87","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-fees","label":"Fees","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":{"id":"radix-:r6:-trigger-attendance","label":"Attendance","name":null,"type":"button"},"durationMs":14,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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":24.27,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"94592e87-f628-420f-8c22-31d19b1f3407","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-fees","label":"Fees","name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:30: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.9,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"050ba539-4e8f-4396-ae14-485e9b581c97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:30:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:31:00"}
{"durationMs":35.88,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"42b8c4dd-0eb4-4596-81d7-fbe8e54d348b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:31:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c706ef06-f97a-454f-8416-d41ad282cf90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:31:03","userId":null}
{"durationMs":30.91,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"1f631118-f627-4e2f-9414-c9ef393b2eff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:31:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-academics","label":"Academics","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:31: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":317.5,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:31: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":18.68,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c125993-2771-4be4-8ee7-42bf3ef56cbb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:31:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":316.1,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:31: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":21.77,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d1d34ae-225b-4718-94ee-7cf2d506c205","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:31:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.9,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"1be4850a-aa63-430b-b21f-56734a3b53fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:31:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.06,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"8859f71a-7fdb-4c29-8b12-21083dbc4108","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:31:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-academics","label":"Academics","name":null,"type":"button"},"durationMs":12,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:31: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":313.9,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:31: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":14.45,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"296ed2cf-877b-4baf-9132-6e89b400bc2f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:31:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":310.4,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:31: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":14.76,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f586c67b-314d-41a9-b763-83b432ff3a56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:31:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-fees","label":"Fees","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:31: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":19.63,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e47e1bb8-9131-4fb8-aef0-b99ed4d903fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:31:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.17,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"db5388ba-ae9f-4560-bf43-0929b0e49763","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:31:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.85,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"59e40dec-3bcf-4ea7-83b9-bac4a8d97627","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:31:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-academics","label":"Academics","name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":319.8,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07: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":20.09,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bf107b11-ff16-4aaf-b767-1d89fcc64737","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:31:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":314.2,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:31: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.53,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f69cc4f-e9ae-47dd-926a-a8436e953d49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:31:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:35:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"014d735f-883e-4254-866f-07b5552cc80f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:36:00"}
{"durationMs":1.73,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83788cf5-8794-4990-9bf5-bbb7dbb1928c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:06","userId":null}
{"durationMs":72.13,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"98edb8dc-3b41-4133-b957-657529050acd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.76,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"18d49734-f110-4f2f-9d64-52947bb93e08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":274.9,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a80a6bf9-2eb7-44af-8666-035c1e58ad71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":265.44,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"c89b9439-3521-4e39-a4a9-205aabbf6a84","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":327.59,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"23474109-f7cc-442b-a28a-359ab4b032ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.8,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"945e4034-a2a5-4af2-b00d-e1bce9adc2d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:36:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":109.14,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades","requestId":"455bf09e-dfea-4671-95b9-8c280a6384e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":137.18,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees","requestId":"4542076c-e2a4-4c3b-8201-431c57aedef1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1000.5,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":1035,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":1503.4,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":1510.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":1542.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":1560.5,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades"},"durationMs":1602.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees"},"durationMs":1616.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":13.85,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9e030695-3afc-453b-9aae-a1e340fca931","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.32,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"8492315d-2b35-46ef-aab5-b0a83800fa14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:36:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":332.1,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":20.92,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d7dbe6e5-00c0-4a16-8422-95357fc96831","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-guardians","label":"Guardians","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":{"id":"radix-:r6:-trigger-fees","label":"Fees","name":null,"type":"button"},"durationMs":16,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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.26,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4f2407d9-7558-4dde-b6b2-8658e2d575c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.33,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"2f7bb301-5b53-46ea-ac78-fec66b3e0b1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:36:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.72,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"be9cf3fa-235f-46ed-9143-862000701fa9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r6:-trigger-academics","label":"Academics","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":367.5,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":21.34,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e15ed9fa-481a-42da-b0e7-366fa9c99ab4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":331.7,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":12.65,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c0924c56-1a25-4a79-ac7b-01f5d51ebb52","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789274175427-539858","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","href":"/dashboard","navId":"1789274175427-539858","text":"Dashboard","to":"/dashboard"},"durationMs":363,"event":"NAV_PATH_CHANGE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","navId":"1789274175427-539858","to":"/dashboard"},"durationMs":386,"event":"NAV_RENDER","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":14.67,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9e3f196-9c19-4bf1-b661-a4f996eb5019","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":148.01,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"4b13985e-9194-453e-9d86-d9d4561496b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":172.11,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"f0b3185c-06ca-49e9-ba20-15ff647e8493","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":157.44,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0f0948f9-3a11-443d-b6d2-337347a37182","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":170.54,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"bf997d0b-fca8-47c2-8068-686cbeb883b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":163.97,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"d885d1c9-f78c-4fce-9a9c-970f9ef90955","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.98,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"d75aa4d1-0330-475e-a415-5084bc7e1e6f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.62,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"56bb250c-a31d-443f-bff3-a40a00e34f58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.31,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a639f853-88a8-4287-ab5d-867584d08ddf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":522.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/dashboard/revenue-trend"},"durationMs":548.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/dashboard/recent-activities"},"durationMs":636.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/dashboard/attendance-trend"},"durationMs":637.3,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/dashboard/grade-distribution"},"durationMs":642.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":753.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/communications/sms/settings"},"durationMs":753.6,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/communications/whatsapp/status"},"durationMs":754.2,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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.38,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0a37c20e-3867-4c20-a3be-e0a6b7625bce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":16,"event":"UI_CLICK","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":16.21,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6878ead2-fe4a-4239-8b8d-473b77bedd5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.77,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcb74480-3e25-4a5c-a7cf-ec2a91e26025","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:24","userId":null}
{"durationMs":61.9,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ebb0d71a-34cc-42de-83e3-63a3425b8e0d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"102.203.84.242","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-13 07:36:25","url":"/api/v1/users?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":247.67,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20","requestId":"e05da4f3-6989-46be-942b-e1a7f6bdfcc3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-13 07:36:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":253.14,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users/stats","requestId":"e63ee286-ed42-4b54-a2e0-8ba379e359db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":312.58,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0a7a1b2f-bf2e-46ae-8cb6-306026569beb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":358.45,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users/roles","requestId":"4fc5a044-61d4-4458-939f-5978aa2a2072","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":304.43,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ce7d2291-fbf6-4615-bea5-830900ac0b0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":313.44,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ba856a57-a39d-49bc-96c7-d5036db71550","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 07:36:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":0.96,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teachers?limit=500","requestId":"e6db6e01-013d-493b-b793-eb1adb94bea0","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:36:26","userId":null}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"102.203.84.242","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-13 07:36:26","url":"/api/v1/users?page=1&limit=20&role=TEACHER","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.41,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20&role=TEACHER","requestId":"cf483b3f-925c-4ff8-b73a-0451ed5d6b88","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-13 07:36:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"102.203.84.242","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-13 07:36:26","url":"/api/v1/users?limit=500&isActive=true&role=TEACHER","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.98,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?limit=500&isActive=true&role=TEACHER","requestId":"d84b0a5a-a075-456c-83c7-4afe6f21a84b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-13 07:36:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":433.5,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":500,"url":"/users"},"durationMs":630,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/users/stats"},"durationMs":632.1,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/communication/notifications/inbox-count"},"durationMs":674.6,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/users/roles"},"durationMs":680.5,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/communication/notifications"},"durationMs":689.8,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":"/communication/notifications/unread-count"},"durationMs":690.9,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":404,"url":"/teachers"},"durationMs":467.2,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":500,"url":"/users"},"durationMs":500.4,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":500,"url":"/users"},"durationMs":382.7,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":22.21,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a435c8e-d146-426c-b494-0185f555bfc0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"102.203.84.242","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-13 07:36:26","url":"/api/v1/users?page=1&limit=20&role=TEACHER","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.02,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20&role=TEACHER","requestId":"885e0e0a-f6be-44e9-b2ed-547e38c6d1a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-13 07:36:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.45,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teachers?limit=500","requestId":"e2b6550b-55f9-4be9-99d1-e5d8fe5d2015","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-13 07:36:27","userId":null}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"102.203.84.242","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-13 07:36:27","url":"/api/v1/users?limit=500&isActive=true&role=TEACHER","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.16,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?limit=500&isActive=true&role=TEACHER","requestId":"deeb6638-72f5-44a1-a251-8806e4bcb87d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-13 07:36:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/users"},"durationMs":350.9,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":404,"url":"/teachers"},"durationMs":290.3,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":500,"url":"/users"},"durationMs":333.1,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 07:36: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":23.23,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"66613f18-53c5-434b-bc48-71fa3cac22e7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:36:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9654f45c-00bb-4477-9283-268eb7a79076","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:45:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8dd0251-8e2c-4c31-bb08-ef432ac3c660","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:50:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"274c8bb7-264c-4c61-8ecc-22b12f3c3956","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 07:55:00","totalConnections":1}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"716abca8-2bd3-489e-8b81-2bc3a992e451","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 07:59:00"}
{"durationMs":2.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7eb6b0c0-ff3f-42b9-82c8-550f8b324410","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 07:59:58","userId":null}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-13T05:00:00.749Z","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-13 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-13 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-13 08:00:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be6cf9b9-a798-4f25-b7d3-f01f0d0d0780","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:05:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:05:01","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae8fc389-f785-48d2-8826-b7ff733b2d7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:10:00","totalConnections":1}
{"durationMs":1.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a65c8bd7-b88d-4bea-ba0f-2329434ef70c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:15:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7ba37e3-fd19-4366-bf40-09700bd082f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:20:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5875bd5-0720-45e8-aa1a-42890546bfdf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:24:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:25:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92171c55-0afb-4a66-a2a1-d8f25d1a2fb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:30:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc15ac9f-548c-4a02-b2ec-e71e93964b7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:35:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"feea1d78-6a60-4de7-8686-4a84a2bcca07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:40:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12ced7ac-ec51-4555-8acd-be7438c70e68","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:45:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08b74b80-72a9-4bf4-bdcd-3c0412987f78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:50:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d164b9c-7bed-4ba7-a1b4-7c633ce43638","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 08:55:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67db90d5-d326-4ccb-816f-df14ef878495","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:00:01","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a44ff8b4-334d-4e40-9381-9afbae1684e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:05:00","totalConnections":1}
{"durationMs":2.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd9ac2e7-8bc5-430b-8344-e132beede6ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:10:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f1115d3-9303-4dfc-b72c-c8624074d090","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:15:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"affc853e-2735-44b3-91dd-bb3dde227f11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:20:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a01c8827-e755-43ef-9cca-2abe93cd8792","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:25:00","totalConnections":1}
{"durationMs":2.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7e0f87f-2e2c-40de-9c45-cf696138243e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:30:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c32f9f1f-ea9d-4697-881f-945c0857f686","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4ef172f9-dfaa-43b9-a6ab-5fe445a8a2b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51a96204-a8d2-45f4-9c56-59b590a2ff61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:45:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ffb9af3-eb84-4adc-9e1e-b6a603f18fd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:50:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d9857d7-e87f-46d1-9112-20ebab7ddf88","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:55:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 09:55:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 09:55:01","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac2aa1c6-b354-45a9-bca7-b7754addbb10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:00:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb11687b-ac35-4a3f-ad6b-9e0755deb337","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:05:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"785bf923-c7a2-4bd8-afd3-599b2d56b0cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:10:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe265eb6-9483-46bb-a095-012d430403d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:15:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"269f08cb-7aa9-45e6-b74c-4f5df2a53d43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:20:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"addf25bd-53d3-4f53-98c4-3bdfe3c643ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:25:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e364680-010f-4019-8b1e-a946fb64f69b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:30:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91ed63a7-46cd-47ea-9f26-fc7aff48457c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:31:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:35:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d9afb18-6350-40d5-b594-6b174b034591","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:40:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acf34826-6ef0-410d-998f-cec66d6e2440","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:45:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b7cf158-3cda-497b-864c-7f695739c734","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:50:01"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d31cf934-b4fd-4772-bdce-6ee9ee9358cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 10:55:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b33ebcc8-ba19-4423-9127-8c55322d293a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:00:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df91cb1c-33e0-45f5-9c76-6973505c7f36","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:05:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b4d3190-7c43-431a-b23a-14d5c828690c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:10:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cfb6e940-4766-45de-8ab8-71406ad97bad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:15:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8deb50dd-e7b5-4b65-b45f-3fdef31503f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:20:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"818e01fc-6a3d-4132-a2a0-3f60d2fb45ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:25:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02799dfd-3f22-4414-82f3-f12b46391425","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:30:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15fb4b7f-6533-47d1-8b30-c27869f29ba0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:35:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4794f62b-5625-4da4-838b-d6849393b622","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:40:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6479a597-e942-4664-abe9-2218aa162f08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:45:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5ddc66f-7cf9-4d47-a9c9-b323282a9fc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:50:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c19b0b08-2d40-4154-91d8-d6c923900998","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 11:55:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98ce7cd8-5aef-497f-be51-0191e8fd8528","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:00:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a91dad01-0e1f-47de-ac89-8c8721373d61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:05:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20428c1c-8a8f-46c0-a06d-af61735eb9d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:10:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cc968fb-706f-4a48-8deb-c0ad09b7b9ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:15:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de1f7e40-8543-4918-82e4-26126add95d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:20:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56e95e2d-4940-41ed-82a6-d2bfc10e7c53","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:25:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d0d2e71-0ed9-4018-98f3-a382e636a871","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:30:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a41f7a6-1c43-4fda-99c8-68cd5a44e8c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:35:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed83abe4-b1dc-4ee0-86a4-f844a1b627c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a69385c-cd38-4ef0-adb7-4ea01d7b3afe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:45:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2b7e3487-3de8-4f65-ae6d-c7d4f68f3aa2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:46:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:50:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49519904-cc5e-4efc-83d7-58857b232556","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 12:55:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04c03be0-22bc-43a5-84b8-ad2c46135945","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:00:01","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d3e6619-f257-422b-8cfb-352c49846374","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:05:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43e96534-544b-4bf3-b7d2-67be3fa04e6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d198f1cc-29d7-4fe6-8d75-52c697fd9078","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:15:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef046bf5-2447-4a74-804b-5cd8ec84254c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:20:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"134c3abb-f9a3-4d75-aee5-13d07515d3c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:25:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2531cf7b-f776-42f7-90ec-a76c8312240c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:30:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbbae5c8-1c17-40cd-b2b3-636d36518543","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:35:00","totalConnections":1}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87543d59-f150-4549-be24-8db2e18d70e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:40:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dbb85f3c-3716-4147-bb15-0b8433d1046c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:45:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1f9ff82-d8ed-427c-87bf-3ba80d33f581","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:50:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58fae89f-9360-4db9-8f8a-f13ef1e4a5dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 13:55:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e770f29-5409-4f8e-bea1-f032580c4dbf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:00:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9537fee7-18ab-4d7d-8f22-50b673ac17a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:05:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ffee5c2-b74b-4f95-b957-7cf892d23203","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:10:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fff857e-675f-45c8-9bb5-864f9c311a03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eabdd8dc-bca5-4810-b170-8c2f711937a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:20:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ae8f830-593b-4449-98f2-fb449a08011d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:25:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbacbc78-abba-47f0-a199-723ec7ad0c1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:30:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9764a86f-d01f-4204-848b-ec5498b0d7ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:35:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7823a9ef-7113-4608-b8aa-176fc114f23a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:40:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d1bd984-f069-4ada-aa15-b3080a02fce9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"907580f3-e480-4d54-afdf-13866661a922","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:50:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a3c3cf3-377b-4c18-9231-accc16e4b6af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 14:55:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"783ca575-b8c6-4d3b-9c0f-1acd24c862a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:00:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35fb866c-6251-475b-b378-b17ca5dff400","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:05:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"939d811a-e1bf-47ba-bb23-0cbe95c47c18","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05998f18-029a-47aa-94a0-d60afe3fdaf2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:13:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:15:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3433f0aa-63b7-4980-95f1-1c3ec131b3c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:20:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"929e2fa0-cae2-4ff9-b919-93a44afda3ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:25:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"551020a5-b1a9-4aba-892e-a3afc7b9aec3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:30:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2bc93fb7-d8d6-481f-a941-c9eacea65d9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:35:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08f1457e-fd31-4c7d-a15c-df3a629844d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:40:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"285ad37e-0dc1-44f1-8d5b-3d7a1f9a1035","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:45:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e6dc904-2866-49b6-8788-b1393fb4851c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:50:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85a180b3-777e-4f87-8f2b-3332d67264b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 15:55:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ee64c7b-2638-4774-bccb-361c3c7f01b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:00:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5dc2fb5c-19de-4374-b0cf-bb3583727e41","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:05:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3f6cc95-c44b-4e45-a8a8-3ffe8063560c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:10:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5dde5024-b25b-43cd-977d-df71b108cde4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:15:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8774e797-907a-441d-889b-a023a68aa784","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:20:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76d301a3-bdc3-4de1-bdbc-4b59774a7cbe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:25:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74e6c1b6-4b0b-41ff-9db3-9bd5fb4a833b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:30:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b9c6367-ac7a-4026-94d5-f171618863cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:35:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d52bb5d-0903-4dbf-b218-cb89cd9511e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:40:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24824e07-b5c5-4321-87f6-177d7847c07b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dbda01f-8a31-4da9-aa5a-5bfa74674758","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:46:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3856dd18-1c81-4117-afdb-18ee91f8831d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 16:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 16:55:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a8095a5-4dbb-4cbf-9e8d-41f03ff63178","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:00:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b9c3589-da5d-46af-a2b8-8ea148145bea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:05:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2bbe1728-ac44-4c31-9565-a182d2d4a059","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:10:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6daa885a-3fdc-468e-8768-5a41075e5bf3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:15:00","totalConnections":1}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46217f50-f9cc-40a5-aca9-3cf660f0d056","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:20:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7c4ceb2-155b-499e-b83d-2939d64cb859","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:25:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8dbb56d5-97bd-4a35-8d3a-c3ad20f9e955","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:30:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a51a9bdb-5433-4405-92b0-095f672bcefb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:35:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6007e3a-14ca-4dc4-8b58-12d02688349a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:40:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33793f65-ed2f-47ae-9aa9-f761369ee7bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:45:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e138963b-ac2e-466f-b71f-c73dd047a711","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:50:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5260c92e-5d06-4df6-9615-f0c273b186f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 17:55:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"113d1a5c-7416-41cf-adff-f9625a7b3aa4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:00:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8a85de0-a701-4071-920f-6a4c22f055e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:05:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51629a56-8c9c-45ea-b725-eff25c72f499","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:10:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8957900-dc87-4d9f-aa8f-df582df3199e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:15:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7afeaa18-5e2e-4996-b114-eb7caf1960e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:20:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"462c60d8-52ea-4f1c-9ca6-893f4c480e1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:25:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79ab4e31-54c2-4231-9211-02f0f3ba7d57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:30:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3a412736-a510-47b3-99c3-2a1975049e80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:35:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3138181-feb5-4cc1-8155-b4817d56c1c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:40:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6034b3dd-100e-4673-b1cf-f57f32c6016c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:45:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24a94a7d-db1f-4270-89b8-0bdc0bb9b150","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:50:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a108d97-ff35-48e9-b639-abd51efa5569","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 18:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 18:55:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de5240ce-5c2a-41cd-8b34-6730c8052495","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:00:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"975143f4-b7bb-43d6-8bcd-70e6e2e04fda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:01:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:05:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e08a018e-3f40-4f42-ac7f-6d93cc8c5b9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:10:00","totalConnections":1}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e33cf51-9a8e-45e4-878f-48e14539145e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:15:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95621ea1-c9b5-4ab4-8d17-cb8ca737d52e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:20:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e795aae-66e5-4e9c-b96a-ffbbb66fd4d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:25:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa166c72-e299-4550-b903-f4246ffad4d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:30:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1bb61953-4a77-4822-9c93-b0e11ddb67ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:35:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed53276b-2e5d-4b9f-bd3b-7df66afa4d9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:40:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"140c5e50-8ebe-48ae-9be9-4d260e741ce0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:45:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d97c765-2893-4632-a7d3-0cf601dcb309","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:47:00"}
{"durationMs":1.1,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99d75631-1e97-49a5-a2b0-c1e31a02f4ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:41","userId":null}
{"durationMs":4.96,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"131735fe-4bba-4653-bc0b-183a362a49ee","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-13 19:47:41","userId":null}
{"durationMs":1.59,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4a605111-0d96-4234-a134-3ed2373f7a8d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-13 19:47:41","userId":null}
{"durationMs":2.66,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7eb36138-3192-432b-8dbb-ebbfa0410b2c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-13 19:47:42","userId":null}
{"durationMs":2.17,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"74363179-2d69-4256-870b-7fc789b88094","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-13 19:47:42","userId":null}
{"durationMs":121.64,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"7e6eb9d9-dcff-48e7-ac7a-55366a822b52","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:42","userId":null}
{"durationMs":3.24,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"7e7eab04-c593-4fe0-95d4-a02b0420ef9c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-13 19:47:42","userId":null}
{"durationMs":2.76,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"daae20a1-adb1-428c-8b3c-c4b8b9d9e857","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-13 19:47:42","userId":null}
{"durationMs":68.57,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"5dfa1e23-8594-404e-80bc-0c3b14cff310","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":80.77,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"31894c89-1895-4b75-9d53-4e177ceeaa1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 19:47:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":95.83,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"3474e449-b93f-45f8-9f39-1b821af1ac77","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":360.2,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47:43","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":368.7,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47:43","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":809,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47:43","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":820,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47:43","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":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47:43","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":"102.203.84.242","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47:43","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":318.9,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47:43","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":332,"event":"API_ERROR","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47:43","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.9,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1325c548-e954-482d-9fd3-4e9a4a18034b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":45.08,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fdeb0e39-0381-44c4-9961-8d55d09bc5c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-13 19:47:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":59.41,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"7f74ccfa-5565-4650-ab86-32b42b141291","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:43","userId":null}
{"durationMs":203.01,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"eda85b8f-eb76-4292-8eb4-17deaeb4ecd2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":113.03,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"289a9cfa-1d5c-4344-a039-309b0ca07188","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":232.82,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"4a780597-313b-4012-ae34-406b3058eab0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":473.3,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":479.8,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":483.7,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":531.3,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":658.3,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":544.3,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":646.4,"event":"API_RESPONSE","ip":"102.203.84.242","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-13 19:47: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.14,"ip":"102.203.84.242","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8e33639-4d11-4944-8451-cbabe857c60e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:47:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:50:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18fab585-640c-47ee-a347-7a5de52823d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 19:55:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e72d5bc6-46fe-418b-89ce-02100a31f8a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:00:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70d5ac8f-629f-4c56-b7d4-808b1fab5456","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fdc95dc-ba1e-4d85-b069-ef183359293c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:10:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e48a530b-aabe-4b59-8c27-c4d7172377e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:15:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee3b6204-41a3-4848-abac-6d127bcb5d6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:20:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe7bfa82-6900-4995-9004-0455ee949782","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:25:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"803c387a-cfa9-4862-b166-58fbe05b9f9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:30:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8036366-721c-4dc3-90a8-a99910695b94","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:35:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98d127ec-8eea-4e2b-a2a6-c8637c774b71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f30d4283-c296-4dae-8327-65ef0fa3d6b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:45:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"923484a2-d299-4c3e-8f93-8bc04426d300","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:50:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"187dd31c-24dd-4eea-9b04-2e45db08d766","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 20:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 20:55:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f8021c0-fbaf-472a-943b-76cb4fb35b09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:00:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19c37c59-de10-48d5-83e0-e82c4ab96d39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:05:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"707bee32-bb4b-434b-ba08-0cc211eb36e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:10:00","totalConnections":1}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4ee4257f-47e9-4977-b069-f9330bcf126c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:15:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b8578f1-68cb-4ce9-8f8d-55ecfbfea232","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:15:01","userId":null}
{"durationMs":1.15,"ip":"197.136.58.40","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7e2a00c-6fe9-459a-b9f9-01ab411315e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:15:10","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:20:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c394d8f5-b0af-45c4-b219-39e65b8a55df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:25:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"147eaf21-9e33-4510-90a3-57d1851aface","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:30:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac134be2-bc45-4d7d-ba25-a569c5e905a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:35:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6acd7f59-3229-4ca6-8125-70410e2d2c15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f90a747-acb9-423e-995f-b792c90cca2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:45:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc149927-074a-48e5-88e1-2d6bb9b9fc70","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:50:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bac39fda-53f7-4741-bd56-81c65641d2f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 21:55:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d937b05f-7eba-40c5-9300-e169575ec8ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:00:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20e89897-61f3-48a3-a691-f7f8cc251fb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:05:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2e68b66-a1a1-4e4c-b746-b0e791fdc5d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:10:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba0c84fa-40f0-4f75-b40e-ce20c8bcdec2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0bd25392-3b87-4394-827b-6c58e29818d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:20:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b2577cc-9270-42ed-8013-39252e7dd5f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:25:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"598ed106-4e08-4b14-ae53-c68fc58fb3de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:30:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02eb835c-8daf-4ae3-9be5-3e3b680bc46a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:35:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"247e40f2-4141-454c-8cec-fd8757862a73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71c7e72a-e77d-47c1-b8e7-7d952a95cf95","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:45:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12e0a7b6-7c99-48fe-aefc-3796b63e53ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:50:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:50:01","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd931cd3-f84f-4868-9685-3b60177703f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 22:55:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9966aa3a-9833-4b22-9823-95c0eeccd381","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:00:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"994a367b-baa6-4f20-bb56-dc80d9e0fc97","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:04:00"}
{"durationMs":1.68,"ip":"154.159.252.56","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae8dd1d1-ebf2-4bd7-ac58-885a94f6c654","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:04:12","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d916eb8-0263-46ed-9dbc-ed7f9f298137","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:10:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b45fb1b7-1143-496d-8202-8e6a3b340b0d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:15:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"471a7032-9a30-4002-b0eb-1263dbf3cc47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:20:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5eca3be8-1cf8-4714-8cc4-345365b86f17","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:25:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7ada855-59f5-423f-88be-2c20e034c872","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:30:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cfe7fe24-c95c-47c5-bcfc-2016241f6dc2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:35:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:35:01","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c58793f6-a3d9-4c70-ac95-ad0dc299e4fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:40:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a98842b-a7ca-4305-9188-8c1f26f6a2ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:45:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"733d6722-207e-4cbc-9d7c-e7e5cb44e61a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:50:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16ad1579-5a5b-40f2-8e06-909a3c81e9b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-13 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-13 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-13 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-13 23:55:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"434698c2-54f5-4b52-8b3a-185bda3137ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-13 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-13 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:00:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"755ba4cd-4007-44ba-abd7-4f003233c717","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:05:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b930fd7-5588-4047-b1ad-986993303406","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:10:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f090adf-e99c-49ba-b322-521d9f2f223d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:15:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd9483b0-cbea-4564-8675-3f73df007059","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:20:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02ee4e1f-ee78-4d0c-b09f-bca32f198a44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:25:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d024e983-fd6e-48bc-8a03-d8850ab73f06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:30:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d6dc608-26a4-442b-b09d-798db64877a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:35:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cd92eea-5baa-42e5-a4cf-5efaa2562528","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:40:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dbd9afb9-38a1-43ba-9fca-6fe7991f0988","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc814589-d504-45d0-925a-58137addf1bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a67e6736-5f1e-49be-a5dd-fc76aa630c55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 00:55:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"407948b7-a578-4ef3-9fa3-0d66125b9c81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:00:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"461ea913-a503-4526-bffd-1f80658411ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:05:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef0d11ad-181b-448b-b9ef-858eb45de8c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:10:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d845f1fb-0cc4-4419-94f7-27102e4822af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:15:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1850ed3-53fc-4498-b689-0c39dd3fcf3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:20:00","totalConnections":1}
{"durationMs":1.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8cb4dfc5-0c2a-48e3-a871-017b19aeab56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:25:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4949fdb-968a-4927-81fc-e7ceb18b7915","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:30:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91b21756-e876-49c0-8ff4-3adf2fb6232c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:35:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66ba1abf-c336-46a0-b1b8-9cd3753124a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:40:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12353ada-040a-41dd-bced-dc46965ad397","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c098925c-7b92-491f-ad1b-f7f6c32421c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"306b3268-f153-4efd-8af0-acb2c38f045b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 01:55:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28c4cb96-b808-4f33-8c8b-892a446ee0e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 01:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:00:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de097e1f-7b33-4fbd-be8e-9ee0619d4ab0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:05:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b09bbd6e-8f91-4017-a08e-7d1f8c58117c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:10:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70e09b01-a7ef-4b0d-8f4f-a308e8f63a9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:15:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61b770bb-6f4a-4558-bbec-a6c8ad03ec30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:20:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be71a91d-fed3-40c1-9885-9ecd9cfbae07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:25:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcebdecb-de10-426a-a023-1bc4c93c8be9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:30:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9e0dd09-c588-4a4c-aadf-e7f76a89d5a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:35:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc0968b8-11ab-4909-8809-0f4a2c5df20c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:40:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4809080-b27c-40e5-8c81-0f2d1baa5510","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:45:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0bbe424-ade5-45fc-9a4f-d60b3f05b84d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:50:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40346328-bccd-45ba-908b-e3f3bb9e6805","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 02:55:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbb54bae-e24c-41c5-a169-4f86d776475a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:57:02"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:00:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f32afa33-0119-4779-b01a-3950ee2ed672","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:05:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98a53361-465c-402f-9f0e-b7552397f7c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:10:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25348f71-1f4d-4662-b742-bed4bd28b6a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:15:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d7f18dd-1974-40eb-b243-1e814af54d22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:20:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6787bed4-0c4b-409a-8604-39222b1931a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ea540e4-3f0d-41f3-92a0-5d1c582f3618","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:30:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b52bbc7-f1ac-4675-9cb5-8d49d54c2932","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed7fd82d-fa54-416f-b08b-7509192ffa07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:40:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4042f045-175a-47ab-ad25-b3db1d9e9f71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:45:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"585d2809-2a84-4b86-ba45-6f9d0cfa8219","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:50:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f96cdbae-1103-47a6-bff9-f6cc4d8ebfc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 03:55:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"adf243ab-0c0f-40a8-a35b-3b50386acad0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:00:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac6f3042-19e8-4f41-80a7-09800b185e76","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:05:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41fc7cdc-824d-41f6-be52-305f3132d789","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:10:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcacf646-1579-441d-94dd-a21cebf4048b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:15:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc577ac0-8f52-4827-8d9b-1c6074301422","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:20:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4dbe6ebb-7a49-4f64-9f13-a727d429a063","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:25:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69ef0ea5-93bd-4d76-bdb4-03d117136a44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:30:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1f1068d-b030-44f3-8bf6-7dacb85b59ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:35:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d7e9452-8d44-4959-89de-a1479b181cb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0eb75db6-37fe-4776-9c19-74d8d320d3b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:45:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47703224-20bd-42f2-bac7-0ea9a7736683","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:50:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02b1024f-8ba3-42ea-9ffe-8f7015502191","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 04:55:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de262793-e37e-4ed7-aff7-8b21889042ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 04:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:00:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b932032c-9042-48e1-9707-36a3fc79bc37","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:05:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"811c95b5-5fd7-46a3-827c-9ff8db549339","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:10:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b42eeb1d-ed4e-44b6-a770-ff53842ab2b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:15:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4ef69b8a-491c-481d-9469-7eed632dc72f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:20:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8b50a92-fa6b-4880-b521-97c4b3fc3b92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:25:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a846eec-6888-48e6-a13a-ea9d94d79950","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:30:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f75519c2-17f5-422f-91c1-95eb461dae64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:35:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ee05ae8-4631-4193-b707-3b2fc7d754dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:40:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f31a23fb-c9cb-4fd5-b2d3-e0f0fa2e0515","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"768d71e8-af3a-4c6d-9414-3cc249f3ef1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:50:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a64dc5e2-c845-40d4-84d0-276f215244d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 05:55:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bda3e590-d4f1-4e28-88bf-3e81515ef706","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 05:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:00:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a212b1d-93ba-42fc-8ff2-5defa9076ae4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:05:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e54786d0-7139-4843-8e38-73e1531b326b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:10:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76183d2a-a641-4032-afe8-b0d8e670a799","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:15:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b35f8f9-3eab-4dbc-867f-8e5a6c9c4a60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:20:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"328d0f13-53e8-4fbb-a5da-6657757ed1e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:25:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9d1f27f-6f3c-412f-bf30-5cb279a0c57c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:30:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20c73f89-69cb-4bea-a37b-c9df75cb0992","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:35:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da2705a8-4ccc-43ae-97cc-c38073dd4ff7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:40:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da179225-d9eb-40f2-b7ef-be3f460d69db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:45:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"740b3d30-7a5e-40df-8c4d-fc0bb7afc8e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:50:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"194ff1f6-9169-4a12-895c-8c64e052479b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 06:55:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3139e7d5-e5cb-40eb-bc63-8e64385d57b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 06:55:01","userId":null}
{"level":"error","message":"[ScheduledMessages] Error in cron job: connect ETIMEDOUT","name":"SequelizeConnectionError","original":{"code":"ETIMEDOUT","errorno":"ETIMEDOUT","fatal":true,"syscall":"connect"},"parent":{"code":"ETIMEDOUT","errorno":"ETIMEDOUT","fatal":true,"syscall":"connect"},"service":"cbc-sms","stack":"SequelizeConnectionError: connect ETIMEDOUT\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-14 06:56:10"}
{"level":"error","message":"[Email Queue Job] Error processing email queue: connect ETIMEDOUT","service":"cbc-sms","stack":"SequelizeConnectionError: connect ETIMEDOUT\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-14 06:56:13"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:57:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 06:59:00"}
{"level":"info","message":"[CRON] Arrears reminder started","service":"cbc-sms","timestamp":"2026-09-14 07:00:00"}
{"level":"error","message":"[CRON] Arrears reminder failed:","service":"cbc-sms","timestamp":"2026-09-14 07:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:00:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb626bf4-36d2-40fc-a512-8e91ea92fbbc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:05:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e318904-d8e2-4335-8a4f-be475d2d980e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:10:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a2d105a-8d85-4485-a0a1-4530d5151a09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:15:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5c180de-f23b-4e3b-8f1c-0e686567c24d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:20:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ab3ba20-8ae7-4342-8bdd-44b3ade87488","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:25:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"907e3bb8-a64c-4090-a5b7-05eaf34e4454","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:30:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7b6c2df-d529-42d7-ba33-06ea62e41170","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:35:00","totalConnections":1}
{"durationMs":2.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"713ec6b3-6e41-446f-a977-2b7afb901a31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:40:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2950b19b-8507-4988-9ac7-279674c426c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:45:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab8018b0-6246-4301-9c10-504e420e228b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:50:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af2975b0-1b90-4445-9bc4-def91f850b5c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 07:55:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f2b5294-e199-4dd2-b9cb-a9eff8c2eed5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-14T05:00:00.464Z","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-14 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-14 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b01044-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b21c8a-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b1253a-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-14 08:00:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01731759-9295-49ea-a6b4-02542607cdb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:05:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8c790d3-f80f-4116-a2a2-eac41f9b8fc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:10:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5a83395-c19c-47e4-9879-0a36278b7e82","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:15:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"579be550-74d9-4b06-b6ae-4ade06ce06a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:20:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46b91536-4863-4572-8ea0-cf4ffcceb907","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:25:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9aacfd0-b075-47b6-96af-e89baab1e70b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:30:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"88260593-bdb4-46d0-9b05-d994e3939483","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:35:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"078607c6-371b-49ff-8d0f-2ffbf1d0d4fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:40:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c219f78-cc8d-43cb-96d7-78a5d14984c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:45:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd8c1293-8b2f-4d81-b2ac-3ef522a9b51d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:49:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:50:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd263211-0dca-45bf-b71a-2309937dd452","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 08:55:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ce39c1e-a582-4165-ad51-8662c7945f2a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 08:59:00"}
{"level":"info","message":"[FeeClearanceEmail] Weekly job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Starting weekly fee clearance email job","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:00:00","totalConnections":1}
{"level":"info","message":"[FeeClearanceEmail] No current term found for school Nairobi Comprehensive school","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for kisii Highschool","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] No current term found for school Eland School","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for Bungoma","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for CBC Model Primary School","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Job completed in 0.06s. Processed 0 students, sent 0 emails","service":"cbc-sms","timestamp":"2026-09-14 09:00:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95f06f4b-87ac-42ab-8d9d-8037e768adce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:05:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"caab0b23-fe76-4936-9f3d-ad554e6adc8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:10:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6718c8b9-45d2-42f4-8d50-e9faa3ef68b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:15:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25d6759f-1a62-4198-b1a0-1f87ab504979","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:20:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76d4574b-0c0f-487c-b635-449c4cb627cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:25:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"827b9a53-a2b0-42d4-97ca-f2b6a0f69e28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:30:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-14 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-14 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:30:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7c79972-bab6-4e5d-9870-5ab2536b231b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:35:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a424258-b2c4-4c7e-997a-05e3b331232f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:36:00"}
{"durationMs":2.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18dd22ec-3f2f-4651-9519-dc524df7607a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:36:51","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:37:00"}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":51,"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-14 09:37:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2adb0576-4aff-466e-a3bb-2673a1027743","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:11","userId":null}
{"durationMs":1305.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"134cc621-8e0a-4afd-8423-c8d726eaa912","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:11","userId":null}
{"durationMs":118.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"4fd34733-7044-4448-8699-a8a18f0cbc76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":276.34,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"6c155198-3dd6-4ccc-8d56-7d8e497092d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":290.67,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"08c3439a-e760-4364-9810-71fb95679291","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":349.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"96ed28e4-bfe2-499a-b9f3-69653d7c2b85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":127.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"c5c0f44b-0985-4280-83e8-2fe56e683762","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":471.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"bb02c08b-e3fa-42e3-b148-fb19376eb343","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1620.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-14 09:37:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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-14 09:37:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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-14 09:37:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":451.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-14 09:37:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d7243b23-61f9-478d-ad46-270770364f84","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"60a2aa55-b01a-4b1b-8e08-8c56ad256d29","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":127.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a4f35fca-f36a-4f4a-b0ab-0752556e7d23","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4955300c-7694-4d24-a0cb-e7fa32012b2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3d488b9c-bb65-4a79-b809-3af679db5f35","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":154.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"f098c9ae-ce97-438c-b97b-54ce613f102b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":209.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"827e96fe-5070-4b83-b3d0-35b814da535e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":265.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"549e8351-eeda-4c3d-8a8b-c0192d364db5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":252.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"abfccd67-2a1b-4df4-ba19-5560b3257750","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":284.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"84bd56cd-4223-4e62-87f7-a62a58c4b30a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":289.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"aed58538-f1dd-4c1c-b30c-33ae837ce93c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":279.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"8047001c-129a-49df-a395-add92ee804f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":304.04,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"64458c4b-916e-454a-8a42-6277d4075f3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1680.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1685.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1688,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1692.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1695.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1499.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1502.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1504.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1506.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":439.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":494,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":545.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":564,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":580.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a29d133c-b9d8-4508-9c08-86323347afaf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":583.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":607,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":608.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-14 09:37:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7bf2091b-d287-4d00-a62c-7db443103848","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:37:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:38:00"}
{"durationMs":68.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bbaa1a3c-f439-4266-918f-071dfaa8eb08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 09:38:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4ac06ee2-8f4e-4c07-8b72-5ce85ceff9f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 09:38:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"b3b9597e-e469-4afe-b68d-0d16a9960acd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:38:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":347.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-14 09:38:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"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-14 09:38:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":297.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-14 09:38:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8af5128e-795c-4789-bb77-4ffa1ebdf570","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:38:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:40:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dff74992-27e2-44f4-b1a7-ab04a9ea54af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:45:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8f50b1c-90bd-4f3a-8e7b-eaea39159ccd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:50:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44a484e1-fba2-446f-b426-f7a76d494a8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:52:00"}
{"durationMs":2.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a4bfca0b-15c2-4d5c-8faf-1e3d31894a20","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 09:52:15","userId":null}
{"durationMs":1.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"71d08853-3836-484c-9b00-8b4443f5d891","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 09:52:15","userId":null}
{"durationMs":1.86,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"d7f8cb01-7298-4636-b562-015ed25201f9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 09:52:15","userId":null}
{"durationMs":1.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"1c159b16-f4f6-4ed2-aa91-8a19d9300024","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 09:52:15","userId":null}
{"durationMs":232.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"4efc5e2b-591d-40f8-88aa-a1132c48d8bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:52:16","userId":null}
{"durationMs":393.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"a3c26df6-6191-4c4a-88e1-a5b14b8abe4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:52:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1275.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-14 09:52:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1273.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-14 09:52:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":942.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-14 09:52:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":1195.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-14 09:52:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3240b972-a230-41c9-b97a-9e9020a59f1f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:52:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":394.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cee58b10-371b-4bc6-9025-665dd8890936","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 09:52:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":399.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"93b01eae-d29f-4452-9942-da92a48825c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 09:52:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":412.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"f74b54ea-b52f-4387-83ef-ef57959a9f8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:52:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":770.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-14 09:52:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":773.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-14 09:52:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":776,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 09:52:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":777.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-14 09:52:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e29c141-250b-4007-bf92-dcdfffb5164a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:52:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:53:00"}
{"durationMs":119.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"2dfbb44e-acb4-4510-8826-c01e21dc2c11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:53:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"29091035-5257-49f2-9efd-933a93f6bf36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 09:53:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fa43dc3f-e36b-48c4-8bbb-3e5ae82595de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 09:53:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"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-14 09:53:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"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-14 09:53:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":433.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-14 09:53:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee26ad50-6768-41fb-bec8-c064c101546f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:53:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:54:00"}
{"durationMs":327.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"14f3ff52-3d5f-4773-af82-b97a50511bc9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 09:54:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":345.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7c8f5ef7-aa59-4483-bc0c-37fbb8d56d64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:54:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":334.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9b15cd96-6b5e-4072-901d-fd346df80175","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 09:54:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":986.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-14 09:54:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":984.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-14 09:54:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":986.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-14 09:54:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5fe4cec1-6f1e-4a19-bf2f-905bec77043b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:54:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 09:55:01","totalConnections":1}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e0d4f0d-f0db-4ad2-ba38-982aec07ebdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:00:00","totalConnections":1}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae12b76c-0817-46ea-9b81-b579a164bca0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:05:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2080608f-19c3-4240-9585-96815e1e87df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:10:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7707a42c-a83b-46dc-a254-9cf6e81af737","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:15:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34a18da0-bc6d-431e-9251-567f6f57117b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:16:00"}
{"durationMs":1.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17ab1048-5cb2-420c-9991-cd9d43c1a44c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:16:53","userId":null}
{"durationMs":111.63,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/08/9c58f785-af02-45e3-b44c-8bf74427f98a.png","requestId":"6baecaac-7b24-4b54-8e97-ae5c84794942","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:16:53","userId":null}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10:16: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":null}
{"data":{"from":"/","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10:16: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":null}
{"durationMs":2.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e3678fd9-6829-4548-8db1-2d68cbcc7839","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:16:54","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:17:00"}
{"durationMs":2.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"722ffe92-9fcc-44d2-a35e-5b02a177ad27","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:00","userId":null}
{"durationMs":1.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"6c4c4976-4ea5-4928-9f06-4171dedd5826","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:00","userId":null}
{"durationMs":1.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"6f180276-19d2-4a74-98f8-d698c70dcff7","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:00","userId":null}
{"durationMs":1.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"91549193-0c5a-4144-b930-77a6116752f9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:00","userId":null}
{"data":{"href":"/dashboard/timetable","navId":"1789370216268-161919","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10: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":null}
{"durationMs":2.44,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"561eabd2-a4c3-4e71-9357-7ed740799287","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:17:05","userId":null}
{"durationMs":97.56,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"5d13b714-400a-41af-b9a1-76b39e42f51a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:17:14","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":20675,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10: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":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":20676.3,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":20676.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":20677.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10: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":null}
{"durationMs":3.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ac39c69d-c3e0-4ab2-9744-8376c5b8cf85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:17:19","userId":null}
{"durationMs":1.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"47cf7876-5505-41e5-a01b-ea7c8e829a2b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:26","userId":null}
{"durationMs":1.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"029681b8-fd99-49b4-99b0-fbbbe38247ad","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:26","userId":null}
{"durationMs":0.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"2af9d201-95fc-4c66-bf54-1d92fcc63bb2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:26","userId":null}
{"durationMs":0.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"b3de857f-9057-4d51-81af-48d84469e8ca","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:26","userId":null}
{"durationMs":0.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"a9737cf2-f994-444e-81a0-c3779169a756","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:26","userId":null}
{"durationMs":0.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"96506973-a131-4399-9493-6467d9f297a9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:26","userId":null}
{"durationMs":0.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"750030f8-b818-4ce8-9dc6-9df4724a472f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:26","userId":null}
{"durationMs":0.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"cfd9f92c-ebc6-4e09-bc3b-47f8536dd3c5","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:17:26","userId":null}
{"durationMs":121.72,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"47ed8420-5736-4c8a-9f1b-0f90972da6c6","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:17:34","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":208.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e6e51847-a149-44c0-9805-ba9a55dab12d","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:17:34","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":211.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c1419cac-f6c4-44d2-83b2-e7135c4061d5","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:17:34","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":233.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"296fee11-409a-4dd5-8033-c8908477396f","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:17:34","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:19:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b6f3244-2f9a-42fc-a4de-25e5116f04b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:19:40","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:20:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b0c69b8-9df2-4f33-b250-ffe0385994e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:20:01","userId":null}
{"durationMs":3.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"600912ab-b25a-46d1-b3d8-e5567a4f41ed","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:20:58","userId":null}
{"durationMs":3.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"77aaf2a6-1c3f-4959-a99d-8bc51c778f48","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:20:58","userId":null}
{"durationMs":2.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"466df998-2640-4a40-8ca8-2c392f3328f3","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:20:58","userId":null}
{"durationMs":97.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"535b5daf-f069-4a25-a8d5-00a5f4665b2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:20:59","userId":null}
{"durationMs":466.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"355f21f6-26a2-428a-b15e-8b09d2f58af5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:21:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":456.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"380bc549-d58e-400e-8f46-0063c04c83f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:21:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":464.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6d0609bd-9369-46b5-8ab0-15e95d008236","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:21:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:21:00"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1221.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-14 10:21:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":1228.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-14 10:21:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1229.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-14 10:21:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":788.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-14 10:21:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":790.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-14 10:21:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":792.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-14 10:21:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1bb44b4a-446d-4387-ba31-47a7444d3572","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:21:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:23:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":86,"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-14 10:23:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2bd50c2d-6e9e-43c9-b0e7-1abfb5b7e674","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-dashboard","navId":"1789370628720-892100","text":null},"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-14 10:23:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"881c7874-5caf-497b-8bed-4dce72c33b43","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":342.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"5d7c788f-c5e7-4385-a67e-d568db2c93ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":431.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/debt-aging","requestId":"06f9b69f-8f3c-4da9-b189-a5f9e973312a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":454.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/collection-velocity","requestId":"af359e7e-181b-4b63-a99c-f2e33bdb9891","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":491.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/payment-segments","requestId":"75b6f023-ffa3-4972-8362-339bd6dbdc43","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":456.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/forecast","requestId":"a8c78fa6-8004-46ed-86c6-d5334125a1f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":541.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"89d89003-4b17-467a-8bda-63318ae34f55","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/fee-dashboard","navId":"1789370628720-892100","text":null,"to":"/dashboard/finance/fee-dashboard"},"durationMs":2215,"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-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789370628720-892100","to":"/dashboard/finance/fee-dashboard"},"durationMs":2215,"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-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789370628720-892100","to":"/dashboard/finance/fee-dashboard"},"durationMs":2244,"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-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"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-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/debt-aging"},"durationMs":733,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/collection-velocity"},"durationMs":782.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-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/payment-segments"},"durationMs":794.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-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/forecast"},"durationMs":795.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-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"285fff9a-2fa1-499e-8d1d-ddcf276d2278","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":808,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:23:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d959c9dd-23d9-4ccb-bcc4-2895fa9ffc7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:23:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:24:00"}
{"durationMs":79.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c475c5af-5de3-41a6-8e2e-71a812202baf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:24:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"05707300-ab5b-4311-9d9a-b81a692d057d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:24:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":371,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:24:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":378.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-14 10:24:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.98,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d5d4c64-893e-4417-8280-443077aaa27e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/arrears/reminders?limit=10","requestId":"50c98815-4d56-44e1-b928-b40009715ee8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Operations","name":null,"type":null},"durationMs":41,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:24:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/arrears/reminders"},"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-14 10:24:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"45723058-69fd-4e49-bcd0-f3ed66aba995","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"a0e6438b-57e8-46ac-97e9-35e5060c9120","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":298.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"9a6c5f46-7320-40df-b476-f13f35aad921","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":462.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"bb96743d-ee7a-4b0e-8621-46f35c997a0f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":447.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"d0a1d442-4877-41bf-843b-12c3a3bb62cf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":402.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"eb93e5fc-d839-4164-a10e-c8feb945f400","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":415.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"367d85b4-b9e5-4ccb-ac00-58a9f06741fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":438.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"8660ada7-0b83-4b8b-aa0f-49e0fb72c598","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":437.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"9d47325c-4034-4fc9-8ece-6bb96fe3c9cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789370663796-896421","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-14 10:24:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","href":"/dashboard","navId":"1789370663796-896421","text":"Dashboard","to":"/dashboard"},"durationMs":106,"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-14 10:24:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","navId":"1789370663796-896421","to":"/dashboard"},"durationMs":182,"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-14 10:24:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a65eaea6-3428-4f03-ac02-70722b4766ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1099.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-14 10:24:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1100.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-14 10:24:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1101.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-14 10:24:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1102.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-14 10:24:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1102.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-14 10:24:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1103.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-14 10:24:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1104.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-14 10:24:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1105,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:24:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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":"d1e5a735-1228-485c-bbde-f77a002bc7b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/settings/payment-gateway","navId":"1789370666131-410934","text":"Open payment gateway"},"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-14 10:24:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"99ae5970-c8ee-4e77-9ea6-3141b985a2bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"20651abb-4c98-4b6a-8108-fec9f6218c2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:24:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/settings/payment-gateway","navId":"1789370666131-410934","text":"Open payment gateway","to":"/dashboard/settings/payment-gateway"},"durationMs":909,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:24:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789370666131-410934","to":"/dashboard/settings/payment-gateway"},"durationMs":909,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:24:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789370666131-410934","to":"/dashboard/settings/payment-gateway"},"durationMs":938,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:24:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":606.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-14 10:24:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a0121271-77db-483a-aff9-7287fe0ab66e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":308.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/mpesa-config","requestId":"221e4280-7805-4174-aaad-77119dd5af45","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Switch to Production","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:24:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1cb794f8-1478-4eca-9321-5c7bbd37d641","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"73d6954d-9688-4392-abc5-a676b47cc16e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":200,"url":"/school/mpesa-config"},"durationMs":827.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-14 10:24:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":441.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-14 10:24:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3501ac89-41fc-4a7d-a67a-7ca6cf1cf3d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Switch to Sandbox","name":null,"type":null},"durationMs":4,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:24:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"99d40e29-099f-4ee5-9dfc-69bb3f07eed9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:24:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:25:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83e75bc7-99a7-4794-82ae-d6301a877570","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:26:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":4,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:26:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a686a41b-ee21-48f0-afb3-760ad2c6438a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:26:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:27:00"}
{"durationMs":326.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"80fe1741-57ac-45b3-bada-d85ba33cdd07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:27:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":385.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f6271e03-3191-4213-903c-9cfd57104ed1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:27:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":669.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-14 10:27:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":682.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-14 10:27:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e901f584-f9b3-42cd-9269-deac70b23831","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:27:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:30:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66a28c9d-4230-4930-a420-fb5627267eb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:32:00"}
{"durationMs":336.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"77447f52-3b98-434e-aac8-15bb5586adbc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:32:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":333.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"0aad342a-1a98-4466-9d72-beb86a1d9f0f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:32:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":391.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"0b1ceff3-f68f-448f-a2ac-0668e3c5ff4a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:32:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":386.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"12dddf6a-a20c-4368-b3fb-1d02d97b66c0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:32:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":391.98,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f9138425-0df0-4573-9123-96a481ef81d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:32:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":2267.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-14 10:32:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":2295.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-14 10:32:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":2373.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-14 10:32:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2378.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-14 10:32:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":2380,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:32:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a1c6bcc1-eeea-46a0-8a0d-cb491c2aee4c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:32:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:34:00"}
{"data":{"href":"/dashboard","navId":"1789371252878-504453","text":null},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/payment-gateway","href":"/dashboard","navId":"1789371252878-504453","text":null,"to":"/dashboard"},"durationMs":123,"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-14 10:34:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/payment-gateway","navId":"1789371252878-504453","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-14 10:34:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":80.74,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b26ebf19-a967-4ff7-8004-a55d0e6d7cfe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":240.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"0f169ddd-5ea4-4399-8563-2d04bbcce96e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":595.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"ba2c1cf3-4337-4ea0-825c-b13a0eccec28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":610.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"06a9175c-7e00-4ed1-8a01-321b8b8f2bc6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":633.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"a10c06b7-f13f-407a-bcd4-d193da5d8c67","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":650.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"b4049b48-0dc0-46fe-b431-0bed7f583258","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":634.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"eef3034d-cd65-49ea-92b7-26cee63bcfb2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":647.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"b76aa4cf-d8ac-469e-8e21-214e17258c97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":629.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"bf90a7ed-f1e3-42cb-92e6-3cd223f0c914","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1153,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1486,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1551.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-14 10:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1552.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-14 10:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1552.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-14 10:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1553.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-14 10:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1554.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-14 10:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1555.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-14 10:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4a46f4fe-2545-4829-9de1-38087cca9346","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"21cd9094-6c33-49a2-8105-2b091eb9f68a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:34:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"543561d5-e257-4c02-a516-1e585b2bdce1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:34:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":339.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-14 10:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":340.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-14 10:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cec1b0e1-60bf-474f-814a-988292136cd3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/payments","navId":"1789371259493-419522","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-14 10:34:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4bf8e4f1-7a64-4747-9cdb-f04b23b4afe1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"a191a432-7765-4893-8983-a28aac30360e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:24","userId":null}
{"durationMs":66.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"b0778d8e-2a33-4aba-9a5b-05cae3dcaa28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":381.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"d0b975e6-d473-4949-bab5-d7acd08a05d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/payments","navId":"1789371259493-419522","text":"Payments","to":"/dashboard/finance/payments"},"durationMs":896,"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-14 10:34:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789371259493-419522","to":"/dashboard/finance/payments"},"durationMs":896,"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-14 10:34:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789371259493-419522","to":"/dashboard/finance/payments"},"durationMs":943,"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-14 10:34:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":300.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-14 10:34:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":399.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-14 10:34:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":712.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-14 10:34:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b374668d-6d02-4f44-b61c-a1995663d682","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payment Settings","name":null,"type":null},"durationMs":35,"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-14 10:34:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"79396d3f-de63-4b4b-b068-74ad2fafae84","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/payment-methods","navId":"1789371273282-433117","text":"Go to Payment Methods Configuration"},"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-14 10:34:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","href":"/dashboard/finance/payment-methods","navId":"1789371273282-433117","text":"Go to Payment Methods Configuration","to":"/dashboard/finance/payment-methods"},"durationMs":43,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1789371273282-433117","to":"/dashboard/finance/payment-methods"},"durationMs":66,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"43f62846-efb5-4663-ba30-0fb3925c9b2a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f38a33b3-bc22-4292-b251-e47d5f4c3dfa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:34:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Go to Dashboard","name":null,"type":null},"durationMs":3,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 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":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payment-methods","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-14 10:34:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":332.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-14 10:34:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a572f5d9-8742-44d3-9b37-584130708065","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":180.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"c02c0408-3160-4a71-93b1-55ca4d71a129","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:34:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/settings/payment-gateway","navId":"1789371279012-170094","text":"Open payment gateway"},"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-14 10:34:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/settings/payment-gateway","navId":"1789371279012-170094","text":"Open payment gateway","to":"/dashboard/settings/payment-gateway"},"durationMs":78,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789371279012-170094","to":"/dashboard/settings/payment-gateway"},"durationMs":95,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":557.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-14 10:34:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6f02f0d6-301a-48cb-863d-125277dbe91b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Production Config","name":null,"type":null},"durationMs":58,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:34:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bc1d4a3c-9479-4b52-889b-4ac527fc4f10","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:34:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/settings","navId":"1789371295538-132575","text":"Back to Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:35:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/payment-gateway","href":"/dashboard/settings","navId":"1789371295538-132575","text":"Back to Settings","to":"/dashboard/settings"},"durationMs":452,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:35:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/payment-gateway","navId":"1789371295538-132575","to":"/dashboard/settings"},"durationMs":480,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:35:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2768eee2-d7db-4eb5-aaf5-69da12a93e71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:35:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:35:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73515e74-bff9-410c-943f-a0fe689e0ae3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:35:02","userId":null}
{"data":{"href":"/dashboard/settings/payment-gateway","navId":"1789371299363-244726","text":"Payment Gateway"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:35:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","href":"/dashboard/settings/payment-gateway","navId":"1789371299363-244726","text":"Payment Gateway","to":"/dashboard/settings/payment-gateway"},"durationMs":76,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:35:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","navId":"1789371299363-244726","to":"/dashboard/settings/payment-gateway"},"durationMs":99,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings/payment-gateway","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:35:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24fcd843-8e10-4ad4-adf9-7f1d4b85ff09","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:35:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:40:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ad6b375-c7b5-413c-9c82-3591458c6786","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8c87d2c-8bc4-45f2-bd42-97642af6dde8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:50:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c87092b5-ecd8-4f4c-a514-1e3a951d5176","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:50:02","userId":null}
{"durationMs":1.81,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7f21136-a82d-4f6f-b4f2-7281c1337d85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:50:45","userId":null}
{"data":{"id":null,"label":"Role-Based Access Control","name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"154.159.237.33","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10:50:48","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":0.9,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"418916af-2268-4a23-a1f9-f2d0ecf15cd1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:50:48","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:51:00"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":129,"event":"UI_CLICK","ip":"154.159.237.33","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10:51:02","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":1.46,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7ded8de0-013e-4324-9eeb-46517caf38c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:51:02","userId":null}
{"durationMs":2.23,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96388ec1-c5c4-4d55-abf2-1ef86df63a8e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:51:08","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":271,"event":"UI_CLICK","ip":"154.159.237.33","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10:51:13","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":2.16,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9eaf43c1-64d4-4c2e-a41a-e211c80bc2b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:51:13","userId":null}
{"data":{"id":null,"label":"Staff Portals8","name":null,"type":null},"durationMs":225,"event":"UI_CLICK","ip":"154.159.237.33","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10:51:26","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":2.16,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ee3b85f-e52c-448c-ad53-acb9faa506d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:51:26","userId":null}
{"data":{"id":null,"label":"Staff Portals Overview","name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"154.159.237.33","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10:51:34","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":1.06,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7eac5cc2-8da6-4c64-8219-63455e9da249","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:51:34","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:52:00"}
{"durationMs":1.38,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"881b5665-405a-4b0d-a88e-d543fd8207cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:04","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":204,"event":"UI_CLICK","ip":"154.159.237.33","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 10:52:07","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":1.37,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d87f8653-6b08-4ba6-8dc9-b1205f73625d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:07","userId":null}
{"durationMs":0.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40616780-7d74-480c-9c7d-86f8cbcf30f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:27","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":null,"service":"cbc-sms","timestamp":"2026-09-14 10:52: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}
{"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":null,"service":"cbc-sms","timestamp":"2026-09-14 10:52: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.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"070ea9ab-a62e-426d-803b-7510f34a1eb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:29","userId":null}
{"durationMs":1.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"c98dbb44-4e14-4a10-845b-a432d002add6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:52:29","userId":null}
{"durationMs":1.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"230ea9d8-d3a2-426d-83a8-a2f03e3565da","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:52:29","userId":null}
{"durationMs":1.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"97b95479-2d35-4b42-bd9d-8709d424795d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:52:29","userId":null}
{"durationMs":2.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"bad476eb-0dbc-4dd3-850a-796fa8903837","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:52:29","userId":null}
{"durationMs":173.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"5fd6ac5b-e254-409f-bd0b-6171cc56ab93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:31","userId":null}
{"durationMs":3.04,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"c6f924a5-57da-4bb3-96d9-023e26487fea","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:52:31","userId":null}
{"durationMs":1.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"ce591bae-4987-4fc6-8515-f9a2ad887274","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 10:52:31","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1488.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-14 10:52: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1492.8,"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-14 10:52: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":2003.9,"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-14 10:52: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":2015.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-14 10:52: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":null}
{"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":null,"service":"cbc-sms","timestamp":"2026-09-14 10:52: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":null}
{"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":null,"service":"cbc-sms","timestamp":"2026-09-14 10:52: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":null}
{"durationMs":3.67,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a245d8ae-56ea-4867-b2af-cd1fb14685b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:31","userId":null}
{"durationMs":66.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"54c44e14-d0db-4dd0-8195-a69e00283935","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:52:32","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":72.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"540670fc-af78-4a71-958d-ecaf04baca6e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:52:32","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":45.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"552766ef-022f-45e9-b7d6-794fb83cc839","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:52:32","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"68061d10-9f71-4ab5-b587-48d59dd3d757","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:32","userId":null}
{"durationMs":159.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"8a7ac942-9395-47db-8888-6bcdb8117905","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:52:32","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":135.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"a7e84952-4df6-4466-81a5-6dbce5f92951","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:52:33","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":54.45,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"0d045bd3-6a62-465e-a314-d201b200eaa4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:52:33","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":106,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"20507837-5e52-42a8-9d1f-5c6248969093","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:52:33","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":1184.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-14 10:52: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"}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":1189.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-14 10:52: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":403.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-14 10:52: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":406.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-14 10:52: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"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":612.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-14 10:52: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":704.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-14 10:52: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":517.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-14 10:52: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":393.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-14 10:52: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":396.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-14 10:52: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":8.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"09f191d8-a358-49cc-b9a0-3a740e7539a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:33","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":69,"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-14 10:52: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":5.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"941de3a3-4f42-4c91-b663-c27cccc9e3a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:39","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-14 10:52: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"76db7fa2-94a2-4d67-85d3-efc43746b408","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:41","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-14 10:52:43","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-14 10:52:43","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.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b55c4609-ee76-47d0-9a42-bdc78527e997","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:52:43","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":20,"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-14 10:53: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.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"991ba082-fced-4551-9f58-ea884848adb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:00","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:53:00"}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":28,"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-14 10:53: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.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"565a45a6-9e95-4c8a-a2bc-61627b8dd61e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:01","userId":null}
{"durationMs":1325.52,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"fe61ec9e-0725-454a-bf2f-7fb6f55d30f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:02","userId":null}
{"durationMs":98.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"1d5e647d-5a6f-4a5b-b8f1-841f3aee205e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1657.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-14 10:53: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-14 10:53: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-14 10:53: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":37.52,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6633e382-10d1-421e-8eb5-594769ef1a1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":91.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"99ccc880-4697-42de-9bf1-2c012ccdc212","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":148.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"444cd04e-5903-4657-9e44-bde048db37c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":235.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"599939e5-b4a6-4a5e-bea9-1799e1ee574c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":247.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5a268a19-fece-4472-b105-54f2a4c86cbb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"1c52fe16-34f4-47c2-a70e-d1969ec3ca97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"23cd0d57-5fe2-4c93-adc4-7d3b51f03f83","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":111.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"1fa7da41-a207-4453-a5b9-8c22373b5d78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"eb6ec214-bd80-40db-9819-61b01aaf65f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"eb2988a4-75c1-45b3-884f-bc98cafbb506","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"891ac6b9-f672-4c92-9808-5aeb41d7dd1a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":74.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"e7c375c1-baed-421a-a38d-ac78098c18ab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":187.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"66d3fb4b-14cd-4872-a147-12f210e6022b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":196.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"58d44fdd-368f-4427-ae98-57a62154aeeb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":208.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"3c3aae12-55fd-4ff1-a8c8-f2e18608b9a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":203.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"90cca4ae-aa75-4280-b89e-143ee6dd2d9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":212.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"5d242031-a5be-4183-904f-f6745e3f44e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Exit Portal","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-14 10:53: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"},"durationMs":2960,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:53: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":2884.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-14 10:53: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":2904.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-14 10:53: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":2906.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-14 10:53: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":2907.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-14 10:53: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":"/reports/dashboard"},"durationMs":381.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-14 10:53: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":27.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cee80fe0-0375-4557-8916-f2c2dc932731","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"e33984b4-0e9f-4dbf-b3be-1e025e13b27f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":702.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":710,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":714.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":718.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":806.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":934.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":935.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":968.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":970.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":971.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1363.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2d3b859e-7ae3-4123-9397-59efa11210fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64cb9ce4-845e-43ce-b249-6bb0d8dd9156","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":10,"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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3d3f1e1a-54b0-4345-bc96-dbd2f6f79fce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f329444-c13c-4a6b-bf47-1795b45e0990","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:10","userId":null}
{"durationMs":37.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"4c45d902-7de5-4166-82dc-3f24f6795eaa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"42eb796b-4cf7-4a09-a033-c824ec414ef1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":156.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"025532c9-94b8-46aa-a531-ef3533900ca2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":150.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2ba8ea20-51f2-4a74-bbb1-25e145850df0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":152.68,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"bd356fb2-bad4-4135-913e-42a66eb5c3bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":162.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"45986821-a820-4235-b955-5c5fd2dd889e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":162.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"951d1329-94c5-4d81-9314-fab15552ae81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"6decd63c-c124-4c3a-a897-77e319f32093","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"1d1c9ae5-69d3-49ab-8ab8-5ac2f7e7af95","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":137.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"294f9087-1c49-4b55-9e0d-24eec6927626","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"b67280a1-dcbf-4d37-863a-2c749af601bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":161.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"1733508b-2107-468e-b371-0a00e45696c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":333.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":356.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":610.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":771.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":682.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":684.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":853.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":884.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":932.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":939.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d3b3a9c1-39a3-4a3e-b741-a4063d6be740","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1004,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1008.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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3d723aa8-a99b-4247-aa4f-f2eb9b782936","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.78,"ip":"154.159.237.33","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b7ac378-d1ac-4bf8-b52b-28eced6f57d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:13","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":120,"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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ec587f79-4070-44e3-a649-f0dc8894ddae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":34,"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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":38,"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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d520a06-c615-4737-93d0-5a2173e87de8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ASSESSMENTS & RESULTS","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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ASSESSMENTS & RESULTS","name":null,"type":null},"durationMs":43,"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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7fd81a7b-be2a-4e84-8a2e-22e294095c21","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PROJECTS","name":null,"type":null},"durationMs":43,"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-14 10:53: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c664387-1bce-452a-8395-0137f8b08769","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:53:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 10:55:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ef7b82e-3330-4a8e-adaf-2cd618ac50c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 10:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:00:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a2e4ae7a-53fc-491c-b02d-c4bd7cdb6b99","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:02:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:05:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8df509e9-0c73-40f7-886a-f665d515fd9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:10:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f474503-e0db-466e-bac5-361b5dba07f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:15:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19f297f7-237d-4a13-8e4d-a7deda351b26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:20:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb0b4bd1-682f-48fd-acdd-0b98f30879a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e77e175-7d21-454d-ae7d-a81248471429","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:30:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9b1673c-3cf6-42d0-82c6-7f1b689566e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:35:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9ab8252-913c-4d7b-9e55-6fa8d60af715","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:40:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46ff4c6b-21aa-453a-af61-ed3c4e95e4c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:45:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e637e22-814c-4082-bacf-827852031da6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:50:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2cc80fca-6fe7-4b3a-bc5b-66677a9de259","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 11:55:00","totalConnections":1}
{"durationMs":3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6189fed-700b-4e79-b3bd-25a676ec5f7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 11:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 11:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:00:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e59818f-1700-4314-b401-771578690ee0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:05:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b60e8ec-8a3b-4a0c-8bea-146f44cfd796","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:06:00"}
{"durationMs":1.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12b0eb11-6b23-4d43-94cd-b1537629dfaa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":2.48,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"45c5afdd-6713-4490-b418-6c39cbb5fa6c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.35,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fe34be47-096a-4e78-aa4f-39e1daf05bb0","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.37,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"46720ebc-0c23-4ae6-a52a-04d8a2ea0055","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":0.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"984878e2-e9fe-4ec9-a3ad-86b538d27fb4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"a4c8676a-eb06-455f-93ea-455221fffaff","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.43,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"e7b817a2-4a13-4936-80be-4f551a6eda6d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"c011545d-7811-4b2f-a122-ec493afadad7","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":52.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/08/9c58f785-af02-45e3-b44c-8bf74427f98a.png","requestId":"4fc67c31-de07-4fc4-820a-821630e17ab6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"db853faf-fb74-4b68-8bc2-60d0d9e8cfbb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c3eb8ac0-9f67-47fe-a935-dfcc2c69fcd9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"/","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:06: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.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"021c9fc3-7d8e-40c0-a473-d13639d0d531","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"758ee357-2412-4cdf-ae35-ca5d244eac62","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"aa7d1122-5d76-4db8-8ec8-d8e59e90a82d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":1.42,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"b6cfe0bf-376c-45fb-bfde-63f9143cc3bc","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:06:35","userId":null}
{"durationMs":62.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"8c7ccc39-6f8f-4579-950c-24235b2f4d39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:35","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":3279.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":3457.2,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":3282,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":3460.2,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":3286.3,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":3289.3,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":3291.2,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":4047.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":4048.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":4049.1,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":14.84,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6cb522f3-2e05-4bb5-929b-e2765627c699","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":279.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"407f0ec8-1b6e-477d-a507-cba1d93ca1c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:36","userId":null}
{"durationMs":106.01,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"6da8b752-8aaa-4896-ad4d-00c24bcfe50b","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":358.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"979b9bb3-be59-49c0-9de0-3061b7f2b447","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:36","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":217.17,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4d6f9112-cae0-4b34-9c91-e8e0eda32da5","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:37","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":224.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"ed30e724-fd2c-4b82-87b7-3b1d6cea5db1","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:37","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":394.02,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"ae43e51c-a11f-45d0-9b85-138834203a35","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:37","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":238.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"3c829b8f-d968-406c-8299-66211acd54b0","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:37","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":239.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"9490c7cc-01b0-4578-ad33-2f358119eb7a","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:37","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":4278.1,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":4278.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1179.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1180.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1181.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1181.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1328,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1328.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1329.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":16.02,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e50e4457-284b-449c-9314-19122055c1f0","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:38","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":71.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"22f030c2-75ba-4c7f-8ee9-19015c70950f","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:38","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":103.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"37baefa5-77ab-4f0f-9867-c8868c213b18","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:38","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":103,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"6874e03e-bfb5-49ab-8b64-30acdba62d05","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:38","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":110.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"fe1a1960-26b4-4b2c-a517-d6764c07abfb","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:38","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":99.27,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"f77f4e2a-f9b4-458b-bd5d-4b5df5154255","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:38","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1327.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1373.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1380.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1381.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1406.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":10.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d6f5ad4-ba52-4c0b-980f-ef4af49c464a","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:39","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":1.48,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e30c9522-fafe-49ed-94a4-a7d049909ed6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:44","userId":null}
{"data":{"href":"/marketing-brochure","navId":"1789370421878-627225","text":"Marketing Brochure (PDF)"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/user-guide","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":13.29,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"06b5c288-a1f4-4c0a-b08b-dd0f942607e9","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:50","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/user-guide","href":"/marketing-brochure","navId":"1789370421878-627225","text":"Marketing Brochure (PDF)","to":"/marketing-brochure"},"durationMs":972,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/marketing-brochure","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/user-guide","navId":"1789370421878-627225","to":"/marketing-brochure"},"durationMs":972,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/marketing-brochure","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/user-guide","navId":"1789370421878-627225","to":"/marketing-brochure"},"durationMs":990,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/marketing-brochure","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:06: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":11.62,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ce787d1-b475-4ebf-9bc2-363700e8bdca","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:06:51","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:08:00"}
{"data":{"id":null,"label":"Print / Download PDF Brochure","name":null,"type":null},"durationMs":7,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/marketing-brochure","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:08: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":33.44,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4487041-941d-4854-8b3f-adf28af604f4","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:08:37","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:10:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"078ad132-ed73-4492-8a09-bdc560498543","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:11:00"}
{"data":{"id":null,"label":"Print / Download PDF Brochure","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/marketing-brochure","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:11: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":42.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d776ce6e-151b-462e-b440-6642efaf1c91","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:11:49","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:12:00"}
{"data":{"id":null,"label":"Print / Download PDF Brochure","name":null,"type":null},"durationMs":6,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/marketing-brochure","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:12: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":34.4,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"14b8e70d-ac02-4d9a-a63c-960200ca6f59","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:12:44","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14cfb409-9792-4067-b0b6-42d8c6c3e2f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:02","userId":null}
{"data":{"from":"/marketing-brochure","href":null,"navId":null,"text":null,"to":"/user-guide"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/user-guide","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/marketing-brochure","navId":null,"to":"/user-guide"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/user-guide","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":46.88,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"75a01102-ce73-4b1a-b74c-e4735553a414","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:20","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":201.29,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"6f46d16c-5fe0-4c24-af37-fda1291a57da","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:22","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":190.35,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"83aee365-35ab-4c9b-bdd7-4d6ff0ab5fc4","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:15:22","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":172.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9e83ac39-b22c-4d5d-9cef-af45f9c71804","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:15:22","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":74.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"42141c2b-ee6e-4960-bf68-98d1e7b3c334","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:22","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":534.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":536.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":537,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":633.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"durationMs":12.4,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b86349cf-5c49-44af-b242-2bd4010a643f","schoolId":"78a14f6a-4c90-4dba-8b7a-8f1419cfa698","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:23","userId":"ed11465b-8624-44b8-aaef-bbdf9904a831"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:15: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":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:15: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":null}
{"durationMs":1.16,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1a956a8-9679-4e78-8f16-b5133f9a954b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:25","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":11,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 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":null}
{"durationMs":1.53,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f1ef1b28-942b-4947-a105-b720ff63875b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:34","userId":null}
{"durationMs":1012.51,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"12d0abb1-45f8-48f3-b27c-80e3db0c855f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:35","userId":null}
{"durationMs":55.91,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"f317f9aa-5ea7-477b-ab68-9f0c6223f2ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"e5f4f2ca-f708-4e41-9cb7-72f8540a166c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"7ae4b155-57b5-4874-9275-65bc2719f36b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":317.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"95bd4547-a5e2-4b54-97f4-0864edf9ab3f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":206.2,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"f83a8e8e-9d76-4f02-8193-e7d9e3d1e18b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":111.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"ef76851d-fea7-4321-b5f5-022badf68d08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":234.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0fcf0012-eb70-4e38-9514-fad8b0c707ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":172.64,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8b488d33-79e4-45b7-a03b-80f78a3ff16d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":174.16,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e4789104-e52e-4c76-b6a6-21d9446bd23a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":196.52,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e2b8065e-1347-4dfc-b1f2-83a478408d4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":411.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"22eb979a-d04a-4ac5-a731-75b54bfbc0e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.07,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"f607e49d-ff95-46b4-85f5-b79f3bb0cb1a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":108.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"33e1b03a-4365-4b4d-92fc-0cd7c2020482","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"3759db16-c807-4806-aa8f-06185a9c2f74","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":86.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"1b93bf4f-11af-4d1e-ab0e-44596cf63910","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"699aefe3-7ff5-4c89-b655-8e5c99165224","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"ef486e06-a573-4d73-8ab5-984d1198062b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1345.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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"},"durationMs":796.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":15.06,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a33cee65-d092-4422-84e7-b4bf338ba344","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.65,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"de708a7c-ee6c-40b7-b4dd-37f51ff36846","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":779.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":872.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1214.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1341.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1355.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1369,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1409,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1428.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1428.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1429.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1708,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1728.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1002.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1126.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1127,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1127.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1194,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":13.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5b3ede94-cdf3-4899-b545-af00420923f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.1,"ip":"196.201.223.6","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd888072-fe0a-444e-8170-33e59876ab6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:39","userId":null}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":21.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"382b74a7-1e62-40a3-9d5b-40330ec06fc7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":8,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":16.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5bf8fe27-5434-41dd-af22-a75224da91a5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1789377351194-348199","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":19.16,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f45b7d9a-17ed-40cf-86dd-6ef544f691ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"69eb9f3d-cc7a-4999-ae66-a6af6a0e15b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":236.05,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms","requestId":"f3e45336-a18f-4339-b181-400e8c173694","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":329.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?role=TEACHER&limit=100","requestId":"2ece8095-e420-46b2-a6ed-037b39a525f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.12,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"5f2f8c35-dab2-4291-89fe-ab28d2fa397d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/timetable","navId":"1789377351194-348199","text":"Timetable","to":"/dashboard/timetable"},"durationMs":1874,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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","navId":"1789377351194-348199","to":"/dashboard/timetable"},"durationMs":1874,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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","navId":"1789377351194-348199","to":"/dashboard/timetable"},"durationMs":1898,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"/academics/classes"},"durationMs":411.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":11.91,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d25de0f-645b-4102-a914-1c1a003a8fdb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms"},"durationMs":1673.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"/staff"},"durationMs":1674.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":"/school/academic-years"},"durationMs":1987.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:15: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":21.8,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"968de544-a4e4-4219-bf16-f328fc2ee881","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:15:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:16:00"}
{"data":{"id":null,"label":"By Teacher","name":null,"type":null},"durationMs":14,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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":14.32,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d51348d0-91a3-4163-8e79-75579e6b77bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":909.83,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"8a297712-06f5-4e4b-a1a6-19292f12a322","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":1312.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":20.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b2c5b000-30da-4ede-9f1c-9d450ad06315","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":145.06,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"85aed3ba-ece9-4c26-a53e-0b0fa374bf1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:16:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":512.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":20.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f3c70ea5-0321-4312-9c50-f9488f722877","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.6,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"c1d9b579-409e-45c9-bfeb-a565b5bdc11a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:16:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":477.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":23.49,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"06e01112-fa29-4c4e-853c-1c41352f2ffa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.88,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"00416e79-f7f2-4a65-a9ae-37ccdce93fe9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:16:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":510.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":21.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d87849dc-5473-4bc4-8790-dfa720af7c49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.57,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"0d7280ae-5ef9-4783-8ade-e3864f468c03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:16:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":600.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":21.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"20a4748a-5b72-441b-ba01-4e11e27c464c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.34,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0b09a6ef-9105-47d7-b067-55f93c4f4238","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:16:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c51947fd-55e7-40ca-8fb3-8afca2406499","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:16:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":469,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":"/communication/notifications/inbox-count"},"durationMs":806.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":18.19,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2413387b-6e69-48c0-a91f-0dc9bf2a8a86","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"By Class","name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f0309de8-7e0e-4edb-b8bd-316c9f2a0d51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"By Teacher","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:16: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":17.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a63dfb2f-8ac0-4999-bc3a-0be0f7f1d39f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Print","name":null,"type":null},"durationMs":6,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 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.2,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bc935c29-c38c-4e9b-a0e6-0e335ea80f3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:16:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:17:00"}
{"durationMs":81.9,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"191710d9-74c5-4d40-9364-0a0c6b101364","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:17:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"eab5d710-a1f6-46e1-a5f9-47c93480883a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:17:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":505,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:17: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":712.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:17: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.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d2eab54b-68d5-4e1d-8f9a-b10d785543b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:17:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:18:00"}
{"durationMs":66.16,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b776aa1d-eb68-4dd4-932f-3366ae49a214","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:18:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.29,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5a1c3714-fa2f-4b24-8404-1a3e83a9ea99","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:18:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":511.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:18: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":712.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:18: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":26.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1e5beee6-b564-44a3-84fe-a6d8a9094877","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:18:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:19:00"}
{"durationMs":74.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b5f5f0e4-30f3-4fbc-8b2a-adf81062cd9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:19:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.71,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"48799953-4005-4021-ba26-9dc52517a4fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:19:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":494.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:19: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":"/communication/notifications/inbox-count"},"durationMs":526.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:19: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":16.76,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"407ec5fd-df93-4378-88e6-f20140ef4e8d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:19:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:20:00","totalConnections":1}
{"durationMs":2.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4526b5da-ce7b-41bf-b00f-4e260847ac7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:20:02","userId":null}
{"durationMs":51.3,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"de587671-6638-4322-a0f7-849d4041d3d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:20:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"13469af3-ead0-4171-a5ff-618393993983","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:20:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":934.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:20: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":"/communication/notifications/inbox-count"},"durationMs":686.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:20: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":13.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5abba912-f1c0-4215-a35c-c6ed1396aab7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:20:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:21:00"}
{"durationMs":76.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1c4df52e-7842-44cf-b353-16bf859bc5b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:21:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.88,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"29741b96-29e5-4768-8602-52daebcf7d30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:21:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":792.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:21: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":"/communication/notifications/inbox-count"},"durationMs":834.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:21: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":27.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7e44fac-29d9-49ac-ab11-b5bd7ccf5e06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:21:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.26,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"efae536e-72f3-4a2a-8967-bf5bb13a59d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:21:56","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:22:00"}
{"durationMs":0.79,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6867db7e-60f9-4c0e-a501-ea6f6c92e104","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:22:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:25:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c3b1be2d-724e-4dae-a1ab-8ecad55da9d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:30:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7aff8e1-8adf-4aa5-8ea4-9c550430691b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:35:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"457c2c3f-d717-49cd-9097-993f3d4f546c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:40:01"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28f33862-bd7b-4bee-b1a9-a9d6af9b2af9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:45:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f1eed1b-d5cb-46ee-8de0-1aea28696a52","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:50:00","totalConnections":1}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7a5b7dd-0838-4cc8-8534-e293cb917ff2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:54:00"}
{"durationMs":1.99,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be94413e-96de-40f9-97d0-e55432dc9e84","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:30","userId":null}
{"durationMs":4.89,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"4815430c-6576-4e74-81ec-8d5d016d7e4e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":3.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9c9a72ab-9da6-4c56-864e-939f8ac76304","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":3.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"de4453f1-baa2-4c1d-b170-5729a2fde821","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":4.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"fec46970-a740-495e-b14b-c47d804ab00f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":2.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"afbdbc93-267b-4de3-81a8-7c950022f8bb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":2.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"4d5f0b84-4eac-4a1e-aa5e-bd0a5e5d9ea8","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":2.22,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"faf6e9fd-4325-4c33-987c-8f757af87d00","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":2.27,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"03b6c3ba-6fc9-42e5-9c9a-96a3db27fd0a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":1.9,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"b49ee322-a520-4e3d-8aec-a48ce27ae430","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":1.83,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"042d71d8-585a-46e1-890b-d4ed4d1ef5c0","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":2.22,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"b0147832-8509-4c52-a726-6394c6dde4c6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":2,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"50c1777c-4173-442a-8969-5bebaa09c458","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":26.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"792547b5-7107-4b9a-bc47-7ac9f74d6cd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:31","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":null}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":415.3,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":418.6,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":441.7,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":594.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":null}
{"durationMs":2.59,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"58bdd059-e890-40b9-994f-5c3e9d012942","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:31","userId":null}
{"durationMs":403.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"b9f88c85-bc41-4ac1-bd91-48afb96ce08f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":341.5,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":374.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":405.6,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":441.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":472.6,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":493.7,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":530,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":600.3,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":97.26,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a373251a-cde8-4ba5-9965-9563dd0b6f03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":263.65,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"34fe6e03-421f-4377-ac31-b12cee3d9c72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":806.76,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e7367ae5-14a2-4e08-9139-6187477f1bb6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":854.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"28caa990-9a24-46a1-9ef6-297c18adc09d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":840.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"e49c6834-7022-4db0-8acd-e98497ef9e56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":786.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"fae1a80a-447d-4621-99e0-cb0c51ede380","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":856.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ac61d4a8-86a6-4585-864d-c0fdb50d6c26","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":680.37,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"99f3be6e-ae8b-491b-9670-f5fb8b0205e7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":857.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"a57001f9-0650-4f91-b7bc-82ca70d012ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":469.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"01959b14-a2b0-4e35-87c1-4e2783f180f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":857.17,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"edf21d82-bdd4-4003-9a70-b83d651508d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":503.52,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"2a25c1ea-50db-442f-a9c1-3c9214b4f263","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":986.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":"/school/enabled-modules"},"durationMs":1011.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":"/dashboard/stats"},"durationMs":1160.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":"/dashboard/revenue-trend"},"durationMs":1182.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":1184.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":"/communications/whatsapp/status"},"durationMs":1185.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":1198.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":1199.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":"/communications/sms/settings"},"durationMs":1200.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":"/dashboard/recent-activities"},"durationMs":1406.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":"/dashboard/attendance-trend"},"durationMs":1408.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":"/dashboard/grade-distribution"},"durationMs":1409.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":21.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ccbaeb00-7d43-4535-bf24-d6983d657ac0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":null}
{"durationMs":2.1,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"30ec5f07-d975-4acd-ace7-fb12442b5182","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:36","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":20,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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":1.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a332383e-1661-4557-8f94-1cc4a590c945","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:44","userId":null}
{"durationMs":691.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"564282d4-8cf1-4a9b-9caf-4596bac5ddb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:49","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":49,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:54: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.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6cabb8d7-6d7c-4b0d-8718-720263b412ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:50","userId":null}
{"durationMs":45.07,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"b02d7943-3510-4c7c-887f-823bd6480335","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":40.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"419ae0c9-69f1-4ff2-9850-8e9b70b951d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":67.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"9a4a8295-397e-4e61-a86a-4e81cb0e0e15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":86.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bad73740-f641-4a7a-a776-0e40aefb2532","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":73.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"13398447-43d5-4b4e-b91d-877d8198fa5f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":42.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"cb790946-5501-47cd-8238-77aafff2a4fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":69.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"41541670-dba1-4623-8fbf-e8ce066b99a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":72.19,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"3465644a-e401-4fa8-a1b3-5f17b85b6880","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":21.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"df059137-4bba-4dcd-83f7-9bc031bc6dae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":58.23,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"9429dd08-f237-48fc-8736-8c48c35868b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":30.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"61894e80-472e-4c5a-86a1-ffe35937cbcb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"6a9c9406-f497-4e9e-8f72-8cb6f403dbef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1056.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":351.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":356.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":388.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":409.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":411.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":362.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":391.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":349.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":351.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":423.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":371.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":373.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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.82,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"70bd9806-f6b2-4b92-bc5f-009aabea7f02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":20,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:54: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":8.76,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2606ae82-a26b-40d3-ac40-46f47f4d2639","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:54:54","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 12:55:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f3cf9a5-31ce-43e9-b777-3e1c9731cfd3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:01","userId":null}
{"durationMs":1.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e4c3363-ac91-4730-9e2a-e5aa098bd479","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:29","userId":null}
{"durationMs":3.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"18881093-27cc-4d05-ae1e-0aef0a5d7aef","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:55:29","userId":null}
{"durationMs":1.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ae51b6d1-65cd-4079-83e3-d3525a29c04e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:55:29","userId":null}
{"durationMs":1.6,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ab22187b-4522-496f-ab6d-52ffa7496ea1","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:55:29","userId":null}
{"durationMs":1.35,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6ebc5a3d-07fd-45aa-ac21-9d78618ce04e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 12:55:29","userId":null}
{"durationMs":60.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"224cbcea-b2f8-47e5-adc5-b81b59112a77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:30","userId":null}
{"durationMs":53.16,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0dc4eaf9-23b3-445a-ae11-5a37207834a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:55:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":153.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"09bfd7e2-cca2-4942-a546-cd8e05a3f8ab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:55:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":148.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a1c0d780-85af-4293-a4e8-7d3970d5e890","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:55:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":133.09,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f504f593-4490-4b6f-aac1-e53647de6e33","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:55:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":449.6,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":455.8,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":457,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":457.7,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3eb320df-0109-44a3-aafa-44fb8203594b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":441.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":504.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":506,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":511.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.4,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b9bc78d-e5ac-4bbd-8531-dea4d9b17c86","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"61f5a592-ade7-4626-a5b7-f606a178bc59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789379743570-892907","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","href":"/dashboard","navId":"1789379743570-892907","text":"Dashboard","to":"/dashboard"},"durationMs":395,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","navId":"1789379743570-892907","to":"/dashboard"},"durationMs":417,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.59,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e31efcbb-435e-4ddf-ad71-47e6433f932b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":318.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"3bede06e-4e80-4ccc-a33c-29d724e35846","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":460.65,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"44683d76-31fe-4124-bd11-2ff27a34fa3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":455.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"1c5922f0-c84b-417a-ab75-7370e3e21125","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":451.69,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"52dbd012-9442-4bcc-bdf0-b929688a3ead","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":537.13,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"31f54dff-5dd1-4d4f-b2e0-3c88b4ea9391","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":517.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"13fc7850-27d1-4385-ba94-61bff895473b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":536.01,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"6b09058f-7006-4cd0-98f4-e30b66787483","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":502.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"ebbb618c-d2a9-4901-ae2a-0f0cfda8c6bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":734.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":846.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":863.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":864.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":870.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":888.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":889,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":889.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:55:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.72,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"435b6843-f599-4c1e-b7d4-95263ac9742e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:55:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:56:00"}
{"data":{"href":"/dashboard/finance/mpesa","navId":"1789379773309-234275","text":"Payment Methods"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d5ce3c7-0f3e-4551-82a4-b1c01ba43a76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.9,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/details","requestId":"27b90103-096e-4861-bc74-5935a99cac3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.09,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"f2cd4ef7-b875-4007-9638-a1d5a5ac6e40","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:56:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"105.161.225.137","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-14 12:56:19","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":132.48,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"e6975036-5eed-4f10-bfc7-eeba639c003d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-14 12:56:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1004.88,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/payment-settings","requestId":"7c7c96ee-9a0c-40a2-849a-e11de3ab29c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/mpesa","navId":"1789379773309-234275","text":"Payment Methods","to":"/dashboard/finance/mpesa"},"durationMs":1602,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789379773309-234275","to":"/dashboard/finance/mpesa"},"durationMs":1602,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789379773309-234275","to":"/dashboard/finance/mpesa"},"durationMs":1719,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/details"},"durationMs":441.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":445.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":448.8,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bff431b8-b43b-4d36-baaa-8f627ac954a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"105.161.225.137","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-14 12:56:20","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"7b68899d-c87a-4159-96f4-0333a08b9820","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-14 12:56:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/payment-settings"},"durationMs":1407.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":447.3,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.05,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0366b03d-42d0-43b8-9cb5-df9fd4ccfea6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":176.49,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments/mpesa/callbacks","requestId":"33c8da4a-ce19-44e9-8dd9-37f1466b7b51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Callbacks & Failed Payments","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"237f6e2e-64f3-411b-a48b-791087951434","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments/mpesa/callbacks"},"durationMs":878.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Bank Accounts","name":null,"type":null},"durationMs":20,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3acec047-e0a7-42fb-a5c3-de1b284dca27","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"056a9902-3906-41c9-8ea2-ba8a5b5fdc55","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:56:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"67979f15-1936-473f-9b89-967917dd0892","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:56:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":393.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":397.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24e9679f-4690-44ec-91e1-f96e0e455845","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789379793723-5403","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f493545f-b660-4c03-84a4-12d57c0fa0c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.63,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b6a96522-57cf-4370-873d-6478effc0153","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.07,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"70d5d04d-cae1-41c1-83b8-5248e0b559b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":378.51,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"62761f07-78f8-452b-8c25-1e0dc4dac1a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":363.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"d58b298b-b806-442d-a2e0-2ef0ff5deccf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","href":"/dashboard/students","navId":"1789379793723-5403","text":"Students","to":"/dashboard/students"},"durationMs":2017,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","navId":"1789379793723-5403","to":"/dashboard/students"},"durationMs":2017,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","navId":"1789379793723-5403","to":"/dashboard/students"},"durationMs":2072,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":485.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":487.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":754.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":755.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:56:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9ed2a505-84b6-4b23-b8f4-7e531a0fb92d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:56:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e8d729b2-9c10-48f8-b310-9e0dfde3432a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":74.02,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"7651e584-037f-4331-9805-353cbdd0e9bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":98.47,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"28cd06f0-2b9e-485e-8181-8ad7a15fe5cf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:57:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":982.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":991.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1008.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.77,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1e1154a1-153e-4b14-b472-832895e2b6c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":6.17,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93ef502c-1a12-470f-923e-9344c7e1a144","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":83.8,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"fa5c90bd-f34c-4517-a936-a76b5720f547","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789379821581-32046","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789379821581-32046","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":707,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"from":"/guardian","navId":"1789379821581-32046","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":707,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"from":"/guardian","navId":"1789379821581-32046","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":744,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":5.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"903440aa-9d31-4362-89c0-141ccdf189cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":294.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"75f8991f-c31d-4530-a30b-3231e391e236","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":435,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":619.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":8.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"caa05513-545b-460f-af40-a62315f16c1e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:09","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":38,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:21","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":29.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f469bc00-fd13-4c19-bacb-5294b10a877f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:21","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":88,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":5.65,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ac74bc47-ab16-465d-99c0-908a664b04b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:22","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":0.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ce270b7-1164-4790-b609-47384576ee09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:28","userId":null}
{"durationMs":44.59,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0192963a-a174-4b2a-af7a-dfd9010d5991","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":70.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b836798b-4e00-4dca-a0cf-02a76a7e15f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":56.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"84e5c45c-5ef6-45fc-b9b0-9a01498b3b91","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":58.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"9506d4a2-cbda-4517-9dd8-2f09d6a36e5e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":121.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"094cdab7-f82c-40d0-9eba-88bed0ce5f3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":173.56,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"e64475e6-95e1-4e30-8a1a-fb7112a21339","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"5d70efcd-765f-43ea-8c70-ad3b707fd2ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":365.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":382,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":383.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":385.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":429.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":467.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":355.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df1bac3e-9e71-46ed-8697-fe792aba2644","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":35,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":9.47,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7b0ebf05-b07b-42f1-81c8-6ad1338eb665","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:30","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":59.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"aad92f21-d238-47a9-83fd-4e67a8dd336b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:31","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":95.27,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"728338f3-f86d-448b-b78c-73c05e845520","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:31","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":79.53,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a7b5d1c0-105f-405f-b2b3-8ed22a27d014","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.48,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3f35bdb0-6135-4897-9c29-08ee49ef3feb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789379845012-855281","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789379845012-855281","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":180,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1789379845012-855281","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":209,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":406.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":416.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de9373c2-3b58-4c7e-a806-0132abc9e0b8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:31","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":391.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":390.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"12e1b3d4-e339-4852-9907-27a2acf437a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payment History (38)","name":null,"type":null},"durationMs":191,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5f4f9883-d632-4585-97c8-58a0b3ad979a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":213,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":12.84,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ffc5761-886f-4531-af98-91c5c9b22b7b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":0.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"895a9678-8618-49b9-9ce6-b2710a10f646","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:49","userId":null}
{"durationMs":68.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"9bb59230-68cf-4d46-95a0-8546bb1d3cb1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:49","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":49.52,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"9cbb0a8b-a171-4c01-a18e-a9d3f25fa9bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:49","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":36.12,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"f8e848f8-c48b-481e-a955-b71ba069ffa8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":76.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ab8c7e4a-f8cf-4321-bde5-d3994ec72c1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":80.68,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"734b3039-3176-41fe-85d0-e02164f62b86","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":92.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c44dc73d-b5f3-4ecc-be25-21e358559708","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":142.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"61e5f8ef-ae10-40e6-86c6-ff448ff1383e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":181.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"bf6c127b-6f9e-410c-8f69-dcf368df3b11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:57:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":362.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":397.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":383.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":386.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":403,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":405.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":538.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":584.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57: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":12.26,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8cf38fc4-40c7-4ef5-961a-37c312804af5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.62,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"955a1893-ea4a-4be1-8898-ee15f1b7ddcb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.05,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"f9cf6348-7285-45ab-a911-80538b466397","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-14 12:57:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":182.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades","requestId":"aaa7b3d3-754c-459f-9f43-75f8f19a6db6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":197.29,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees","requestId":"137068db-83e1-4cc3-a749-e6b8923c921f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"2c87498a-3fc1-482d-ba28-48e5ecd10ac5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":null,"navId":null,"text":null,"to":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":null,"to":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":491.9,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/grades"},"durationMs":568.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/fees"},"durationMs":574,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":576.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:57:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.15,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"28125e89-f069-4d0d-b68f-8e2aa26501ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:57:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":100.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary","requestId":"26912caa-0af6-42ed-9f15-2ed8428c4cdc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-14 12:57:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/attendance-summary"},"durationMs":504.7,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.3,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7f8b7d66-c124-42b3-80f5-a1fb2da543fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:58:00"}
{"durationMs":40.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"04da92f0-cd5f-4cef-9cc5-788bbc870464","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-14 12:58:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history","requestId":"9af03917-cc3b-49b4-9c57-2c8430230d67","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-14 12:58:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r7g:-trigger-academics","label":"Academics","name":null,"type":"button"},"durationMs":2,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":401.7,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.51,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"248c2590-79fc-4239-b3c9-e2c0e141361c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/academic-history"},"durationMs":420.5,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.07,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ab034082-5e85-401a-88c6-7511e62c7a92","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"72a4f63f-6f7f-481b-ab47-199bf77ebcad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":244.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"175e0ff3-67e3-44af-a11f-eb6bb4dee28b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/invoices","navId":"1789379887594-24408","text":"Invoices & Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","href":"/dashboard/finance/invoices","navId":"1789379887594-24408","text":"Invoices & Reports","to":"/dashboard/finance/invoices"},"durationMs":668,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","navId":"1789379887594-24408","to":"/dashboard/finance/invoices"},"durationMs":668,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","navId":"1789379887594-24408","to":"/dashboard/finance/invoices"},"durationMs":743,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.63,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d1a8986-6d86-4b62-99f6-3d7221132aab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":597.64,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments?page=1&limit=20","requestId":"a1a81707-38a1-4f17-b114-e26e2f597ba7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":625.69,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"ca901545-d89e-48a6-9abb-9e1d0494ffc1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:58:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":966.69,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?page=1&limit=20","requestId":"f01409a8-57a9-4ab0-8931-61048b43a66a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":574.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":576.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments"},"durationMs":960.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":962.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b4bc66d-9de0-481f-be01-cf5d9a3dc4a9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":1924.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.6,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1239fa5c-eb3d-4770-9588-767ae5cc38bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.53,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c12b7e38-6d8d-44ea-b5b1-11974c30fd0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:58:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.06,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e3b1fee3-701c-49b2-b5e8-7bd6f5c018ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:58:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":545.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":544.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/payments","navId":"1789379908763-331209","text":"Payments & Deposits"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.51,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"decdab42-5f3b-4c4b-8f4d-2a76a302bad1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.47,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"6952ad4a-17a1-4740-90f1-f8cddf8e3968","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:58:34","userId":null}
{"durationMs":59.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"369e4862-ee25-4e54-a61d-6e02354ca5bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":446.35,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"a3f69a15-3428-4d1b-9580-72bbd47b4549","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:58:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","href":"/dashboard/finance/payments","navId":"1789379908763-331209","text":"Payments & Deposits","to":"/dashboard/finance/payments"},"durationMs":769,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1789379908763-331209","to":"/dashboard/finance/payments"},"durationMs":769,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1789379908763-331209","to":"/dashboard/finance/payments"},"durationMs":800,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":440.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":473,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.02,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6d34918e-a6a9-47ce-86ca-5c3c4ead391c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":867,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b65b2bc0-3045-44e2-9b79-8549280f9fc6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":145.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/payments?bankVerificationStatus=PENDING_VERIFICATION,UNVERIFIED&limit=100&sortBy=createdAt&sortOrder=asc","requestId":"03e62fda-19f4-43b0-943a-b464f9d9cfd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Unverified Deposits","name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance/payments"},"durationMs":794.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3a0492fc-4265-4e4f-bd33-f20002cbbc4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cd5d7d21-5b0f-481b-b625-b7362bd4b91c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:58:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":60.51,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0681910d-ad01-47ae-aa1f-aaf37d5c7c3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:58:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1004.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":993.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58: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"}
{"data":{"id":null,"label":"Payment History (38)","name":null,"type":null},"durationMs":150,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58: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":15.65,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fcaf4b0b-66b6-4016-bcb7-09817349753f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":180,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:58: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.4,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"62a4fc56-f814-4163-9d48-07460b1b5596","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:58:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 12:59:00"}
{"durationMs":2.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad417966-f680-4868-9d77-c35112941292","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:02","userId":null}
{"durationMs":54.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"3cbe2801-1213-4474-93ca-b16c6c32a9ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":135.68,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"27273637-74e0-4aa2-a74f-83697832254a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":47.37,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"1c3edacc-a2a4-4e6d-b0bb-7d89efe184f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":109.2,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cd4f0d9b-b3da-4858-82cf-a7151c4e8c35","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":104.07,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f35a871c-acbc-4452-a7c2-02468de42ef8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":128.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"412c20e7-721d-4bff-adaa-bb6db83465b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":276.23,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"c1f587b4-eb05-43de-abd8-ca03d6887109","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":385.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"7c6591e2-4cd9-4443-8549-6c802978b2ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":459.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":497.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59: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"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":396.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":477.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":479.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":485.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":655.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59: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"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":779.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59: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":9.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"95675dbf-4d10-4178-965d-9a8b7150d575","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:04","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard/finance/payments","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:59:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/finance/payments","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:59:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eff1a47b-bcde-48c1-a7c3-198970c0d81c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:05","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:59:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":0.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"968db638-7df4-41f6-b610-696a506022a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:26","userId":null}
{"durationMs":680.55,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"a79f951b-9301-4259-b7b0-8d605483f0bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:27","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":29,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 12:59:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.09,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a804a2c-3cfb-48d4-aa03-99607fff7b16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:27","userId":null}
{"durationMs":37.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"11c7bfaf-3452-4fd6-95a9-4be451129c24","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":60.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b607b4e7-64a6-48cf-a73b-77e7ac80e8e7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":62.44,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1ee45fb9-4061-4425-9fd5-91b6ba088cc5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":60.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c483de5d-0861-470d-a82c-57b7bfa00505","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":53.16,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e4e49998-1008-40fa-a146-f73094640723","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":29.76,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"273f67fe-5448-45d4-9554-977470d80f24","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":33.69,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"008f99b7-7ba9-4f3c-95a6-20ca5757d8e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":50.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"9986b4a4-1cff-4857-8787-9e5495dc1906","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":38.62,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"08421b43-8255-4094-8bb4-716d8eeda226","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":41.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"e5077cba-6cb7-40c9-ac8c-dcc9b2c5b3ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":77.84,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"16d3abed-a5a2-41cc-8abf-2118bd56e417","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1036.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":369.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":544.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":546.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":547.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":548.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":366.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":374.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":378.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":395.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.96,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d0bae59-341d-46fe-aa8f-0fd32a44a281","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":63.52,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"d989effd-c694-4eec-95db-cc797d6d3e71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":415.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":426.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":355,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"354dabd4-ed18-44dd-846f-8c5543decf09","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":120.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"8b3daf63-666a-4538-a648-6f0b18a52aae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":159.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"139c41b2-803d-406f-82c4-7c469783c3f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Fees","name":null,"type":null},"durationMs":6,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":null,"navId":null,"text":null,"to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":null,"to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.45,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"796c75bb-52d7-47ec-93da-8cdfce71962b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":548.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":550.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bfc1c2c7-d289-41f5-972f-b52f9b2be38f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 12:59:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.68,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"39d27180-82f7-4049-9c62-e817d9af56e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 12:59:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:00:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8faa9a83-880e-49cb-9f4a-1d8e80f82562","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:02","userId":null}
{"durationMs":1.51,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa1e71dd-e053-4937-b0d1-e695903acd01","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:12","userId":null}
{"durationMs":85.9,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"d620c9ff-4a21-4a97-a3d1-02278c6bddb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":96.32,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"6ecceb53-139d-4845-870e-813ac6b79117","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":117.13,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"39ff4feb-0170-4f92-9761-0e2c94cbff74","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":142.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f9f4ce46-13bd-47c7-9068-18952beca43b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":140.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d552198e-4bc5-4c50-97f8-beb9a92a5ab3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":138.89,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"040c3721-6cef-4c58-8db6-f0a1ec63f71b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":103.29,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"df80eb70-8b50-4596-b6cb-1573e07be9a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":503.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":507,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":438.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":447.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":455.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":467,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":500.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d25437ba-ecc2-4b89-bb32-544642b2376e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:14","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:00:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/guardian","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:00:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.56,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df26412d-14b4-4f7a-8835-1cb852b558d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:30","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":16,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:00:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.02,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"506a6af2-07b7-42fd-bd3c-ae1ca813ed23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:45","userId":null}
{"durationMs":787.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"cb0b6994-3235-42e3-ab00-54deb3402a41","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:46","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":28,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:00:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.05,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c011e4d-ca17-494d-a71c-a6ba0e7a3a50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:46","userId":null}
{"durationMs":54.65,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"7d06a0dd-7dc9-4e1e-8aa3-8dca336cbca4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b8ef8e57-bc5e-4cb1-b278-312b5ebfba0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.92,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e6aec540-077b-450d-ba17-b5731f06fcac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.48,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"198c1375-0cc2-41cb-84d9-77c77d1fb3a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"219270e0-7868-4669-9125-3bb7ccca1574","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"087d252b-10b3-4ab8-8aa1-5425b1e450bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":372.68,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"ac5d090d-82dc-4217-97f6-83ce9196c299","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":146.23,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"adfe4490-2471-4947-a382-7e8020df1dab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1285.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":713.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7830d35-bc6c-429e-a49b-f4c64be54c39","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":204.41,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"a5a32884-e508-4732-9693-72ea318ad09c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":189.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4a5bb0aa-f6ff-42c3-b478-005b2acfb89c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":412.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"09dfd851-f11a-4e07-9f95-f28925656c6c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":278.71,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"93b673ea-9122-4b79-a589-9f5fe14d79f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":210.44,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"ef8bd8f3-b12a-4cad-a225-5a5b8560e801","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":371.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"b16cf3c1-f091-49d1-bf4d-58240783badb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":341.88,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"bec189a9-0cbc-4a80-93e4-337e6e414d06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":362.02,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"adf2a01a-8f75-4b1a-a5b4-59585191ef88","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":573.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"4434f917-d59d-47ee-b067-3e09dea83508","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":504.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"0c1f04b7-303f-4c07-91a6-fdec6cd4603c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":918.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1165.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1274.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1372.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1392.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1848.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":2019.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1485.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1511.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":2099.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1543.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1632.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1634,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":2194.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":2195.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":2197.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":2199.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.55,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3f6d52a-c150-4bb8-b5b8-81c54e07a697","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.79,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/details","requestId":"75482744-6c0b-4f27-be1d-13b73126be53","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/payment-settings","requestId":"ee4536aa-d6b8-485d-a21a-d961c371ff69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.8,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"9647d8b6-4c53-42b8-8bd7-a908c901aad9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"105.161.225.137","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-14 13:00:54","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"af203571-151a-4869-9df8-8d94e7992887","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-14 13:00:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/mpesa","navId":"1789380049714-679572","text":"Payment Methods"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/mpesa","navId":"1789380049714-679572","text":"Payment Methods","to":"/dashboard/finance/mpesa"},"durationMs":177,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789380049714-679572","to":"/dashboard/finance/mpesa"},"durationMs":230,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/payment-settings"},"durationMs":453.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":454.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/details"},"durationMs":456.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":459.2,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4b00c75-e9c4-485d-bff5-61a43e041e77","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"105.161.225.137","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-14 13:00:55","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"8bc3db43-8881-4b97-94e4-a2959dc9ab45","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-14 13:00:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":357.8,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Callbacks & Failed Payments","name":null,"type":null},"durationMs":37,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fefcf212-0411-40cf-9183-6c498ac75091","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.12,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments/mpesa/callbacks","requestId":"c94c1d4e-7b8a-4f48-836e-9106d617c292","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:00:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments/mpesa/callbacks"},"durationMs":412.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"M-Pesa Config","name":null,"type":null},"durationMs":60,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:00:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.69,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6746de4-6cd6-4397-ba13-cc42cda59682","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:00:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:01:00"}
{"data":{"id":null,"label":"Bank Accounts","name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.19,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ca9563c8-8cb8-48d6-804b-784a6dffa1b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:01:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":6.15,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks?isActive=true","requestId":"fab57819-400d-4232-a45b-94d8f38cc9ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:01:27","userId":null}
{"data":{"id":null,"label":"Add Bank Account","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":406.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fd57002a-4928-4d68-b9d0-49b13fd553b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:01:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"M-Pesa Settlement (Paybill/Till)","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.82,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b4848ffa-5315-426e-85ce-4818445ff090","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:01:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Bank Accounts","name":null,"type":null},"durationMs":17,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"48fcea88-c682-46c3-bc19-6ab7a377d696","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:01:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Search and select a bank...","name":null,"type":"button"},"durationMs":80,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Search and select a bank...","name":null,"type":"button"},"durationMs":24,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe4f5e65-98a4-4787-a9f6-56c692476c04","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:01:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Search and select a bank...","name":null,"type":"button"},"durationMs":48,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.92,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d69ccb2-8498-4215-986d-1d6adb53ae4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:01:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4d5c9a1e-d2fa-473c-8ce6-46d4505955ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:01:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.47,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5082253d-295e-4d73-913c-6d28a06ab509","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:01:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":528.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":447.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:01:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"735fbec9-949e-442b-ae4b-535376d66dd2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:01:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:02:00"}
{"data":{"id":null,"label":"M-Pesa Settlement (Paybill/Till)","name":null,"type":null},"durationMs":36,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:02:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6684e085-0268-4563-b60e-08776dd6c815","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:02:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"eee0c024-2a0e-4170-a954-0d7e0de2ad2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:02:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c63e07e8-1176-47da-a0cf-59a9fad9517e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:02:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":540.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:02:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":573.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:02:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3788a098-c069-4d9f-a496-def0e6b6b9e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:02:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:03:00"}
{"durationMs":41.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"fdd41df7-eb04-47e4-a0df-ca2120ecaf35","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:03:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"1ff8d4be-02a6-4e50-8c78-c67fac2e7d53","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.41,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"771ab453-d045-4c01-bd91-5a61855f669f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"9e72a98a-fe0a-4c57-b476-27034b7ba856","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1789380181600-67070","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","href":"/dashboard/assessments/exams","navId":"1789380181600-67070","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":505,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","navId":"1789380181600-67070","to":"/dashboard/assessments/exams"},"durationMs":505,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","navId":"1789380181600-67070","to":"/dashboard/assessments/exams"},"durationMs":645,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"39f4d75c-34f9-43ec-a1cf-1d5729156093","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&academicYearId=cmp8gtpm300d48bcnc9mas3i7","requestId":"b8a62b5c-1d95-4a02-92cd-3e01b4ba2033","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":731.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":734.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":736,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":804.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":530.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"61cd5238-2fdf-4509-93f5-1e79a4c51450","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:03:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/assessments/exams","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:03:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"035d8e61-f799-4351-9582-623b674d4281","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:34","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":22,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:03:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02550b84-9bdb-4ea4-b15a-bdc24c75b2c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:42","userId":null}
{"durationMs":1171.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"ffe2d7a4-8e66-41bd-9671-8d7f53d96a5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:42","userId":null}
{"durationMs":34.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"0cf25b18-4035-4d56-98e3-8d6e830c8cef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":53.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"056632a6-45f2-43bd-8e99-db85a49e5933","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":162.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4bbe7b79-a42d-424f-b538-f5d196ae4420","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":167.82,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7736553f-fe41-45e2-a0c4-d97c26169eec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":222.68,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"2b806add-ed1d-4480-9d67-7837a2720e31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":31.33,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"3b040431-a2c5-4ef5-9092-07cd5625ab59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":51.77,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"8cccafe7-b5cf-440e-836c-bde3a52c64e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":45.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"b5e24b35-94c0-4bac-9d2d-fc4834b2128b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":49.35,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"70374878-f714-4663-95bd-95bd30909d9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:44","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":2262.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":526.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":499.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":6.72,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7fe60b96-de1b-4e3d-96a9-ef6535834372","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:45","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":161.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"b5bee4f8-b550-407a-bcb5-4e7c934611ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":225.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"c2ba1f3d-d8d5-4bd3-be75-2f98573f91c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":473.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"5704f320-fec9-4593-b543-d1273865e957","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":16.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"b8c750bd-df4b-4313-b657-67068a37f1e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":85.13,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/students?streamId=cmp8gtppb00dy8bcnm1lpuafg","requestId":"0811ed4e-e9db-411c-982a-ed7fea765230","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":93.32,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/timetable?streamId=cmp8gtppb00dy8bcnm1lpuafg&day=Monday","requestId":"3a4bb1b0-d3b4-49f7-bb7f-01e848c37bb4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":160.63,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?streamId=cmp8gtppb00dy8bcnm1lpuafg&date=2026-09-14","requestId":"cefa41ec-7ee4-42ba-8e41-f3abb5dd141b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1257.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1262,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1264.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1268.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1758.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1759.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1761.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.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":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard","navId":null,"to":"/dashboard/teacher"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":467.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":531,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.47,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"456861b0-2bc2-4198-ac46-800414bf1565","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":470.3,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/dashboard?streamId=cmp8gtppb00dy8bcnm1lpuafg","requestId":"44bc7ac3-f209-4b1e-81c4-98203bc63cef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":80.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/analytics?streamId=cmp8gtppb00dy8bcnm1lpuafg&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"b25c6492-e6ab-4b9a-9cfd-d64ee82cf296","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":87.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"5611a96c-cf91-46dd-9ff3-7de809c28669","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":1072,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":579.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/students"},"durationMs":584.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/timetable"},"durationMs":586.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":588.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/dashboard"},"durationMs":900,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/analytics?streamId=cmp8gtppb00dy8bcnm1lpuafg&termId=cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":428.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":7.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee5fd6e1-124d-4eeb-b878-c3d59d36d10f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":465.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":7,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:03:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":12.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4217c59-3b8f-425f-8242-c92ca418394f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:03:48","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:04:00"}
{"data":{"href":"/dashboard/class-teacher/assessments/formative-grades","navId":"1789380236907-190254","text":"Formative Grades"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/teacher","href":"/dashboard/class-teacher/assessments/formative-grades","navId":"1789380236907-190254","text":"Formative Grades","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":413,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/teacher","navId":"1789380236907-190254","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":439,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":7.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b2cd1db2-42ea-47eb-b313-b94e0f7dcb7a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:04:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":40.33,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms","requestId":"519020c8-8b5e-47c4-9aa3-5d31cd5e9265","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:04:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":69.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"ab86658e-e7fa-4938-90a5-d612c22d1ddb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:04:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":70.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"9aa7e1ec-68f2-4858-afb0-6dad1bd5fb0f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:04:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":69.63,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&streamId=&isPublished=true&limit=100","requestId":"e10ffa12-5e9c-4ced-910c-a3fc72ec9800","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:04:03","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academic/terms"},"durationMs":451.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":453.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":455.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":531.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":10.09,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3ee8960c-3c25-4c5f-8456-540672058b3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:04:04","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":54.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3738a42a-6bd4-49ef-9cc6-67f84fd730ab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:04:45","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":65.05,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"aaff0c72-bf9f-4aaf-b4d1-c43dc86c2e69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:04:45","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":672.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":677.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:04:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":10.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bfe9a999-a8fb-4549-b215-6b5f28165a8c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:04:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a1d55ab-0a1d-4f49-9eae-4da5e002a62f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:05:01","userId":null}
{"data":{"href":"/dashboard/class-teacher/students","navId":"1789380301423-599317","text":"My Students"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:05:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/assessments/formative-grades","href":"/dashboard/class-teacher/students","navId":"1789380301423-599317","text":"My Students","to":"/dashboard/class-teacher/students"},"durationMs":544,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:05:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/assessments/formative-grades","navId":"1789380301423-599317","to":"/dashboard/class-teacher/students"},"durationMs":544,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:05:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/assessments/formative-grades","navId":"1789380301423-599317","to":"/dashboard/class-teacher/students"},"durationMs":551,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:05:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.72,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2b21e049-797f-445f-a801-c456250e7309","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:05:06","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":48.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/students?streamId=cmp8gtppb00dy8bcnm1lpuafg","requestId":"cea02992-fe33-4004-be4c-4b7fe60abda8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:05:06","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/students"},"durationMs":2433.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:05:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":9.84,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0b90771c-921d-464e-bcd0-4f2b43ba2d37","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:05:09","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":124.45,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"18120caa-bc4a-4a2f-8ec4-584c7c2636bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:05:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":121.41,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2f83a8ef-55d5-4773-872a-0e4fd9d22bb1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:05:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":444.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:05:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":444,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:05:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":6.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9588476-2e07-4e9c-b9ea-d13548954b15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:05:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:06:00"}
{"data":{"href":"/dashboard/class-teacher/attendance","navId":"1789380378747-259166","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:06:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"afb541e3-a210-4371-b567-de13dd82a5a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:06:23","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":46.96,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?streamId=cmp8gtppb00dy8bcnm1lpuafg&date=2026-09-14","requestId":"8faa972e-498a-4ad4-97eb-386f4371f596","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:06:24","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/students","href":"/dashboard/class-teacher/attendance","navId":"1789380378747-259166","text":"Attendance","to":"/dashboard/class-teacher/attendance"},"durationMs":894,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:06:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/students","navId":"1789380378747-259166","to":"/dashboard/class-teacher/attendance"},"durationMs":894,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:06:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/students","navId":"1789380378747-259166","to":"/dashboard/class-teacher/attendance"},"durationMs":953,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:06:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":377.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:06:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df2f1d98-71d0-40c6-80e8-d7fdcd7952b5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:06:24","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":32.51,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"19fe2b7c-d5bb-4ee2-a908-3882f87f131e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:06:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":70.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"04ac27b3-908b-41ce-a33e-3a39ea9094b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:06:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":421.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:06:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":427,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:06:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":12.1,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6577822c-95ef-4515-8d4f-aa1b1d3f9be8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:06:48","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:07:00"}
{"data":{"href":"/dashboard/class-teacher/timetable","navId":"1789380436377-494955","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":19.8,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc1246c9-977e-496a-8fe1-09e03888625f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:07:21","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":46.6,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables?streamId=cmp8gtppb00dy8bcnm1lpuafg","requestId":"ec038423-fa9e-4948-b5af-d5898c426293","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:07:21","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":61.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule","requestId":"f36da73d-c3ec-47b2-a7a9-fe1f40b1dd9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:07:21","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/attendance","href":"/dashboard/class-teacher/timetable","navId":"1789380436377-494955","text":"Timetable","to":"/dashboard/class-teacher/timetable"},"durationMs":880,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/attendance","navId":"1789380436377-494955","to":"/dashboard/class-teacher/timetable"},"durationMs":880,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/attendance","navId":"1789380436377-494955","to":"/dashboard/class-teacher/timetable"},"durationMs":910,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/timetables"},"durationMs":363.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":385.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c28220e-7375-40de-b184-8b37b9d58bff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:07:22","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Class Timetable","name":null,"type":null},"durationMs":41,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.22,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dbafe037-8ea9-4cf5-a581-aa46932d4aa0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:07:25","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"My Lessons","name":null,"type":null},"durationMs":37,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c3ae69b5-b9b6-411b-91a5-8e037b83514f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:07:31","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":125.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"590a1b79-c378-4168-ad5c-09211020474c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:07:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":132.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"71416e56-8c6f-496c-b37d-046ae3d32ad7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:07:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":436.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":440.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":10.99,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dcf20ea6-8898-4239-9e6c-c5dbfe799ca7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:07:48","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Lesson Plans","name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:07:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.02,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c12be97-c8ee-444d-b795-266538d16bdc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:07:51","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:08:00"}
{"data":{"id":null,"label":"PP1 Blue","name":null,"type":"button"},"durationMs":53,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:08:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.91,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d8dce165-554f-4c90-b937-8909b10749e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:08:08","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"PP1 Blue","name":null,"type":"button"},"durationMs":18,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:08:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":10.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"43a338e8-a53a-4bee-8e15-7f8cb261b520","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:08:10","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":49.34,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"87a03988-da89-47e4-859c-361cb03d08cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:08:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":70.82,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e5a8801d-b1b9-4004-8356-31d77d78e0af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:08:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":406.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:08:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":406,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:08:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":9.89,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"521324a6-1a34-4ba8-961f-f7893e5375ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:08:49","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:09:00"}
{"durationMs":82.07,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e937e843-834a-43a7-a92a-2ea99b297d3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:09:48","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":73.71,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d64e9c9f-9ea9-491d-8bf1-a95d1a6281e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:09:48","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":393.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:09:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":392.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:09:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":12.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c055c350-b998-49ae-9423-3ab572e436f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:09:49","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:10:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"640ca232-141b-489a-ba0b-e4b4e606ba7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:15:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a23bb877-b59b-42cd-b598-d96f705b3bc9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:20:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c963d7b0-6590-4e27-afec-35a8ad541e4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:24:00"}
{"durationMs":1.83,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8684a41-e1b9-4a62-beda-08413ac43821","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:46","userId":null}
{"durationMs":2.44,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"6e7c1728-3e91-4df9-a2c3-1d72b876ab1e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:47","userId":null}
{"durationMs":3.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9e7d4282-e4cd-4d50-addb-5d2ecb3b0e20","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:47","userId":null}
{"durationMs":3.49,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e65f9c1f-7759-46bd-a194-79e63167dd3e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:48","userId":null}
{"durationMs":3.45,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f4489efb-c3b6-40b4-8ccc-5216eae287aa","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:48","userId":null}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"data":{"from":"/","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"durationMs":2.17,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4ff1497f-7ffb-493c-ab75-4c76beedd74c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:48","userId":null}
{"durationMs":2.84,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"5e7f3e33-eac9-467f-ae2b-39a2a913ab3f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:48","userId":null}
{"durationMs":2.06,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"5ba0fde5-6600-48fe-84f8-ccf4658f0972","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:49","userId":null}
{"durationMs":1.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"0ea2af2b-2fab-4ee2-a219-27e63ff5684c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:49","userId":null}
{"durationMs":1.36,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"dd8c4b0e-5765-4f53-8044-bea7db471e34","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:49","userId":null}
{"durationMs":1.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"bf64ddd9-f5f9-4e95-b78f-961149887e15","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:49","userId":null}
{"durationMs":1.37,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"58c21657-d4c3-4bed-9778-d6eed1e11246","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:49","userId":null}
{"durationMs":2.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"99f0d141-7ac0-4659-a0a0-809ada39a0a6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:49","userId":null}
{"durationMs":1.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"589946b6-2f9c-410e-a519-784e304229e9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:24:49","userId":null}
{"durationMs":39.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"93b55ede-e457-4f77-8150-b250e436a1c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:49","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":604.2,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":974.1,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1432.6,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1947.9,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":1462.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":1715,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"durationMs":1.68,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ae5c80f-b10b-4d9d-b26f-6254f2a0dd2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:49","userId":null}
{"durationMs":374.92,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e7d8fe47-1aad-4d0c-9e9b-1a88d9ef4a7b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":376.45,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"57e92633-0774-44f3-9c56-81915fe0273e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":375.88,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"8462fd8a-abf7-4cae-9f94-47f691e6fca8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":520.48,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"902d0682-b41f-49d0-ab09-db79966bdcc1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":548.26,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"aed36855-36bb-484b-8d81-19f542c7659c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":101.99,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"8251c738-4b59-4035-a97c-892fbf9130e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":142.36,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"23200d32-da08-463f-9bb0-7de694aad031","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":1723.2,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:24: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":401,"url":"/school/mpesa-config"},"durationMs":1723.8,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:24: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":401,"url":"/dashboard/recent-activities"},"durationMs":1724.5,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:24: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":401,"url":"/dashboard/attendance-trend"},"durationMs":1724.8,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:24: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":401,"url":"/communications/sms/settings"},"durationMs":1728.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:24: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":401,"url":"/communications/whatsapp/status"},"durationMs":1807.4,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:24: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":36.83,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a83e57f-98e4-465c-8f66-c45926ed601a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":277.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"995c6ec1-2a85-4a79-8b56-5186689304f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":260.47,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"36878a98-8d6a-4bbd-8750-48718d924f10","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":291.68,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"dfcdcbf9-cca6-45b4-9cbf-7ef0bc233470","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":259.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"67026eb8-cc4b-4a9a-b79e-a3c73deb507f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":317.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"d9d8559b-134a-4df8-ac38-03a334bf69d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":693.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":702,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":713.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":866.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":957.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":987.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":998.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1043,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1052.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1052.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1054.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1061.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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.52,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3e780064-3054-4a66-b276-7742aabe16bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:51","userId":null}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:24: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":null}
{"durationMs":1.45,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"439d335b-2a2e-46b7-994d-fb8bda7a0a44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:24:53","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:25:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dbde7d4b-6248-432d-a4fc-ef874dc8eef9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:02","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:25: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":1.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6138486-8f9d-435c-8bb8-16ffcf43ba4c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:09","userId":null}
{"durationMs":684.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"3449d5b7-486e-419f-bde4-5d7d1ca4b07e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:10","userId":null}
{"durationMs":17.82,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"2fd68766-062d-4b57-8da1-123e1dad8b0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:25:10","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":42.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"7b62d730-226b-4c4a-b747-5c7a18d617d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:10","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":11,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":5729.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":14.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"12aed9d7-3bfa-406a-8519-e6b5c7cdd93f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:10","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":53.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5f1b61cd-c409-46f9-aaed-1688804da925","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:25:10","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":64.45,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"caaec23a-eb46-4d54-8ef2-e7c56b327e76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:25:10","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":79.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9463c640-01c0-4625-997a-8e1c89b6242b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:25:10","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":18.22,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"4cd9516d-6f03-48c0-8b60-a4de0b88c7a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":38.33,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"06f1b79f-61d0-4e19-b539-f0f0e67d6e78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":35.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"dac23ec8-c893-46db-9d2b-ab132c738d36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":52.53,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"16e7b2d6-8435-4002-99dd-0a9b443a7e95","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":52.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"bae1768a-9ac3-4e32-980b-3e5e10f8a3f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":92.72,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"645537fd-403b-4f1b-9ef0-88c36656c758","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":42.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"eff9c0fe-98ec-4b1b-8346-37593fabbd3f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":354.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":314.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":559.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":561.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":567.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":333.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":337.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":339.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":340.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":361.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":383.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.17,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"94b0ea30-f265-47dc-aa5d-8d865ac952de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:12","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":353.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"87dbdecb-ed4c-40e9-adfb-1225fb9354a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:12","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":144.19,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"d92cdea4-966d-4240-9e2b-1f9515299ea9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:14","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789381510134-320232","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789381510134-320232","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":621,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1789381510134-320232","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":621,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1789381510134-320232","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":657,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":14.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"44fcc8cd-0bb9-4bb6-ab57-ce3a5ed1cff2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:14","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":257.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"efaebda2-49c0-40d6-b402-136bc059d81e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:14","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":435.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":596.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:25: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.72,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1b385b6d-1476-44be-a7d6-ac25d6cbe9ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:15","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":27,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8cb7cc33-1b6f-46f0-a128-ebf85e730d72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:25:16","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:26:00"}
{"durationMs":2.15,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2008cde-515f-4d40-91fa-4bf1190d5408","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:26:36","userId":null}
{"durationMs":109.32,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"2ddabe01-bf78-455d-8207-b86c1e5253a9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:26:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":17.52,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"26d402f8-0daf-4d9e-b791-4943cd6f2169","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:26:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":189.22,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"57038edd-f6c8-44d8-b87d-59eb1b7b2264","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:26:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":67.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1c04df2f-9201-4c22-91f5-0bac78747a14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:26:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":66.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cd247bc6-8aac-4010-8d67-3e2167e42879","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:26:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":67.27,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"89ff349b-1143-41bd-aa11-95055fe30ab6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:26:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":85.51,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"6e111f2d-3906-4e23-84a1-5c666328bb2a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:26:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":506.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:26:38","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":387.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:26:38","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":574.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:26:38","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":504.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:26:38","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":507.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:26:38","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":508.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:26:38","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":509.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:26:38","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":16.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ebc9eed6-dd37-4b39-9161-432f03987af2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:26:38","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:30:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58d6af21-75d0-4965-8af9-1df5a66800c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:35:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2571108-1990-434c-8c97-9c2786f1d138","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:37:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec19b577-16fb-41c4-8e58-dcdf1fa8d7b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:37:20","userId":null}
{"durationMs":225.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"584ca0f1-c461-461f-a9c5-3b975c5f8b0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":222.49,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"da50da82-3fda-4cbb-9e33-09d33438f5ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":239.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"e110e8f5-cc72-4988-a023-8a52fe83c1c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1522.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1527.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":1527.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.72,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ecabea54-5f84-45d0-9950-bd18ce44c6cf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:37:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":1,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd4851e9-f1ad-4c30-a82d-fdafe6b6f348","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:37:44","userId":null}
{"durationMs":64.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"51d45ede-97be-4343-af49-e3f900be26cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":107.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"33823dc5-7600-4898-acbe-f16290f3fd3f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":49.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"448999c9-3e05-48df-bb08-e08bdd4e8ef2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":97.44,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6857db94-36a7-4e4c-ab17-279ad9b19520","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":140.49,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"839c15cd-5f74-424b-8add-acdc7b91536d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":136.42,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"19e53662-23b0-4f2e-b485-e98ebb424241","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":172.9,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"040a173a-1c9d-4afd-899a-fbbcd511cec4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":412.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":441.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":400.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":419.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":476.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":493.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":514.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.1,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"79f59f5d-4247-406b-860c-0c9e1066b7c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:37:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":53.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"e3a68bc1-dab4-4cb2-9a41-b90bde30a2f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:49","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":112.55,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"f676ab01-c5d3-4fa3-bddf-0a84711c4c6b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:37:49","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Fees","name":null,"type":null},"durationMs":2,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":null,"navId":null,"text":null,"to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":null,"to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.84,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1bb4025d-3dd1-4463-b459-c2602315ebcc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:37:49","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":385.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":437.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.91,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aefe5331-ad2b-4a94-9ea6-0a6317c1424d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:37:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"ced2bd5a-ae0f-483d-b70c-130f44858d06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:37:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":24,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":384.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:37: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c439ab1f-1fd8-4d16-9d2e-87d24c6e69c4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:37:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:38:00"}
{"data":{"id":null,"label":"Pay KES 1 via M-Pesa STK","name":null,"type":null},"durationMs":62,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.79,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"14d3a1b8-e0d0-4218-a364-efb4c69fd4da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:38:14","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ec9a2a0-32ea-4e54-9be0-676eb2ef8690","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:38:21","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":1.77,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"675340ed-23e6-44f4-b8ce-8ef97a8e4564","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:38:24","userId":null}
{"durationMs":85.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"44ffc353-b786-48f4-9baf-b7410707d593","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:24","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"11b91b33-8cb2-4f1f-b2d3-24afc5bafd3f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:24","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":111.76,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"5510ddcc-da04-48f4-aafd-edabcf691a2a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:24","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":195.6,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e8d53e94-16c6-4eb7-9ca5-57aace130e0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:24","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":198.6,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"573ae401-5f0b-45cd-a9f7-905b7201438e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:24","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":206.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"add23132-87e6-425d-bb52-d850c57fd9ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:24","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":285.47,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"0cb229b1-7967-417a-b76e-92905ad48a67","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:24","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":325.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"2e094e90-0507-441a-9ebf-be10387a9056","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:24","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":393.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":344.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":430.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":501.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":532.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":538.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":624.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":675.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.22,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"60adff28-d719-4447-9f35-834cd8a6bb96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:38:25","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":37.01,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"fadf0c78-359d-452e-ba3b-2bdc0440d5f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:38:27","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":416.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"54338de6-941e-4459-8c41-7c36f2f0b17b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:38:27","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"KCB Bank","name":null,"type":"button"},"durationMs":33,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":4.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"63eb4faf-7756-4df8-bbf7-0c6dbfed8bfd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:38:54","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:38: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9ccb7bc0-fd04-4baa-8418-ae67063a1cf2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:38:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:39:00"}
{"durationMs":1.2,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e947af3-d2cf-4170-86ac-eabb4daa2c19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:00","userId":null}
{"durationMs":74.55,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"1da91fa7-5595-40c3-b414-d206bc93194d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":21.84,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"d0e3d79f-5603-4cb6-a593-0512aa692dd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":135.33,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"f5108d6d-18a1-4644-8727-34e91dd1cc00","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":83.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e9baaf54-9583-4bcd-ab07-8e268952107d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":82.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4e48dbe0-02b8-4f1c-a7c8-245d3940c231","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":84.96,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"94d4d9d8-2b24-48e6-afa6-660f392c2904","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":88.64,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"faea7453-5860-43e7-a3cf-a5b922762ebe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":129.01,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"75ad1523-aad1-4684-b06e-63db0e83cb9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":434.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":353.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":461,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":434.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":436.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":439.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":448.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":480.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.37,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"32f0b6c0-1a1d-4b4a-a8f1-871f504dc990","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:39: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":null}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:39: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":null}
{"durationMs":2.13,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3cb58252-6244-4fcf-80d2-736e23797e91","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:17","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:39: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":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":24,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:39: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":null}
{"durationMs":1.01,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c3a4efd8-6b8b-4e23-97aa-9ceea6de154c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:27","userId":null}
{"durationMs":827.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"6e79c0d1-cbd6-4fad-b68b-789149d5ff56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:27","userId":null}
{"durationMs":41.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"6cb09e39-5ff0-4f11-a1b2-ac0539703c05","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"ae904147-1172-4899-a392-b520550cceed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":54.96,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"88ccabe0-0e8f-4ab9-986d-137f7b09ed5f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":74.23,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"aa050fbb-7db0-48b8-a6a6-7ffc5b959e78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":62.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"110f0e7a-7e01-457f-a9e3-4469253e4d17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":289.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"30ca5415-d746-4302-8706-733576dedd07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":243.34,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"a2cf8f8a-23ef-44e1-8955-9ea838abafaf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":353.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ceda708a-bdc5-4653-8ab1-3b19d6f203c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":349.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6467cbca-0e3b-4939-bb2e-29acc26d8c08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1167.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":356.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":385.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":404.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":406.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":439.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"04610a6b-f545-4a29-bf5c-63b1938653c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":284.19,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"1645e8f5-5aa6-49e9-9e85-c35ed7b6205f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":177.4,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"f88d182f-c329-4bc6-8972-93a79fb7b043","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":298.64,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"8f76e5ba-5a75-48c7-bdcf-09cc9c881f78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":691.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":707.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":719.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":726.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":690.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":644.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":728.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a384931d-763c-47b6-9d9a-aad1922dedc2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:30","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.07,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"db917d3a-62f9-41fe-8c59-daff55ceb601","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:31","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":98.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"92e74d92-bed4-4892-98a8-7ce475e1f98b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:31","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382368568-594294","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382368568-594294","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":34,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1789382368568-594294","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":54,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":367.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":387.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":5.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1e7d068e-340e-4c71-8ef4-92db08f5f99b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:32","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Payment History (38)","name":null,"type":null},"durationMs":112,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8daf18bf-ee65-4aa2-a171-a294bf1679e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Invoices (0)","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13: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":28.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3ddc4f6f-d9aa-4e7e-b922-bd9d002fa150","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"28692c15-c15a-486d-8fa1-e90f95810d91","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:39:53","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13: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/payment-methods"},"durationMs":536.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13: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":8.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"91bf61f8-ebf2-416d-9c8f-ede3e18e17ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:53","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":8,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:39: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.36,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b5f78ec-fa64-4e40-9813-7d2a2a6ee0d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:39:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:40:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d9625bb-fa36-478a-bbb8-94c075826ed9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:02","userId":null}
{"data":{"href":"/guardian/calendar","navId":"1789382407680-428004","text":"School Calendar"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.41,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cfd09f62-57d3-4774-9135-da96d25dd1f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":38.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"c7edece7-2ca6-4842-952a-4042dff852ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":123.33,"ip":"105.161.225.137","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":"4f339c3e-6bfd-4707-9ae2-992da5017a96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":128.57,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"c5678844-6a37-4475-9b7a-f7b3950b086c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":141.23,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"86773abe-1fb0-4d24-8916-2270b79b018e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","href":"/guardian/calendar","navId":"1789382407680-428004","text":"School Calendar","to":"/guardian/calendar"},"durationMs":871,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382407680-428004","to":"/guardian/calendar"},"durationMs":871,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382407680-428004","to":"/guardian/calendar"},"durationMs":887,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":404.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":436.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":448.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":453.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.12,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1510f054-c8e7-4fa1-bd08-170040ae6daa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:12","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Public Holidays","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.36,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"709f90b2-f648-4064-9cbf-8d2d625b5f4c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382448424-888579","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"/guardian/calendar","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382448424-888579","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":35,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":"/guardian/calendar","navId":"1789382448424-888579","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":62,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:40: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":12.12,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9123f9be-9a3d-48b4-b354-1233b5e75b19","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":17,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13: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.71,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da776862-a214-4330-ab79-dc58239d7a7c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:40:54","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:41:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":7,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:41: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c95b7117-e2d9-4dcc-9fb3-5316f340f4cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:41:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:41: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":null}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:41: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":null}
{"durationMs":1.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fdede6fa-19c3-43f8-aaa5-cf45551673a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:41:34","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:42:00"}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":15,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:42: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":0.86,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"98e99b57-8b5a-48e8-9266-9751e808a365","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:09","userId":null}
{"body":{"identifier":"admin","password":"[REDACTED]"},"error":"Invalid username or password","ip":"105.161.225.137","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-14 13:42:09","url":"/api/v1/auth/login"}
{"durationMs":1233.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"a37041eb-5c12-446e-9fc0-d47fc26b4030","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 13:42:09","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":1573.5,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:42: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":0.9,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"52d9a06e-e573-402f-8c18-bbe89b9378e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:10","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":14,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:42: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":null}
{"durationMs":1.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f78c6489-4cdf-4336-9cde-ad3651707e6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:12","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":12,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13: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":0.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a7b60c6b-e157-448a-8428-e19c9273ca61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:18","userId":null}
{"durationMs":805.1,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"36e6aa43-339b-411e-b27b-44e466ecf665","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:18","userId":null}
{"durationMs":58.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"2b76f7ea-05c8-4eca-9a07-25704e39d6c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c35ee7bd-6e2f-4894-85b9-61566ba3efc5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8f1c8207-f5a9-4139-8151-a8270d72701d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"07a0ffd3-bc33-4d07-bea2-8f4804fe293e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.63,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"6fbec015-c3bd-4137-b6e8-8e76d411c422","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1122.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":20.64,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"73c13160-055e-464a-bd75-13aaf45995d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"e552cd2a-54ec-4d00-a9e5-3a91c3d767db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":126.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"e1cc2145-4d03-4ce3-a030-e235609637b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":266.59,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b7dd0812-f442-41e1-93f1-b9ce7459187a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"7b6265a2-571f-443f-9a1b-eafd2e55927c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":233.03,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"f471a68b-e3d0-4744-a483-de212a11480f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":111.76,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"c958e012-1080-4747-a4b1-f5f8d8d6cee4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":277.36,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"377ae129-1c07-4551-abea-22fa20d4f98e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":324.29,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"20cb6e3b-5878-4a3b-9ea7-61a6bf692f87","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":198.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"ef722c33-4aed-4a0e-b2c6-c8f768b13686","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":235.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"ebf528f3-2f12-41ab-8253-bf975d0b01ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":312.77,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"ee3b71b7-49f9-4c4c-a25b-6e2c7458f645","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":184.44,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"8cfff5f5-d34a-42c5-8671-b01f1a559a75","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":309.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"39c4b4db-210a-43d5-9cec-77ebb1f5aa4c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":821.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":1139.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/school/enabled-modules"},"durationMs":1305.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":1456.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":1549.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/reports/dashboard"},"durationMs":1002.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/school/terms?isCurrent=true"},"durationMs":1135,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":1230.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":1236.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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/learning-areas"},"durationMs":1359.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/school/mpesa-config"},"durationMs":1297.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/dashboard/stats"},"durationMs":1351.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/dashboard/revenue-trend"},"durationMs":1394.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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/sms/settings"},"durationMs":1399.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/dashboard/recent-activities"},"durationMs":1476.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/dashboard/attendance-trend"},"durationMs":1477.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":1477.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/dashboard/grade-distribution"},"durationMs":1478.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"13f389e4-798b-4215-9e33-0d7be16ef1ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.09,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"01e25b01-fd4e-47c7-b97b-c1abd7167ea9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.87,"ip":"105.161.225.137","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":"3a44b6fa-7367-40e1-89c4-73c31e0ce81c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.56,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"2e84292a-40b7-4d6c-9eaa-8bbfd30a6973","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.9,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"4304f586-9bb9-41b3-8761-50996f3d69c0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1789382542672-16185","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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","href":"/dashboard/academic/calendar","navId":"1789382542672-16185","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":76,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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","navId":"1789382542672-16185","to":"/dashboard/academic/calendar"},"durationMs":94,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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/years"},"durationMs":400.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/calendar/events"},"durationMs":428.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/calendar/summary"},"durationMs":440.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":"/calendar/holidays"},"durationMs":453.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":21.26,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4671773e-d95c-4544-81fe-2eb3a2130bf5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":20.42,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f6130514-0878-4714-a507-18477f30eba5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Activate","name":null,"type":null},"durationMs":72,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":20.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b89a67f5-6173-4bf9-a51f-8fda172514a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":508.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/terms/cmp8gtpmv00da8bcnk5rsmytz/set-current","requestId":"4687d504-5478-47d1-bfc5-a9b9ea18da65","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Set Active Term","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":30.29,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"201ada98-c4e3-4d72-96bb-5231c9e977fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"a6a8499f-d7af-4062-9166-03026678a12e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"f9f1eb4c-3617-4fa4-b706-2e82fbc35a36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"10aef93f-c74f-4e9a-a76b-b9587e3dca1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:42:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":200,"url":"/school/terms/cmp8gtpmv00da8bcnk5rsmytz/set-current"},"durationMs":970.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13: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"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":522.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13: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"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":525.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13: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":14.11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"554471e8-9af6-49da-b973-a8ac994602d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1107.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ea88ead5-fd68-495e-90cc-dbf9c857350e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:42: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":17.47,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e4c7cdf1-eaed-4a1a-b648-c5a446c8f610","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:42: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}
{"data":{"from":"/dashboard/academic/calendar","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:42: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":2.06,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8fa9c09-8f39-42ec-9bd9-2a78ea47ad0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:47","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":21,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:42: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":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:42: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":null}
{"durationMs":1.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c97a846f-4815-4e6c-a151-44fffc7d78b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:42:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:43:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":46,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:43: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.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c4d126a1-79cc-49a7-a3ad-e4fb25f11c45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:01","userId":null}
{"durationMs":629.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"821eabc2-a0d3-49f1-a9d3-4833419df189","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:02","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":18,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:43: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":null}
{"durationMs":1.76,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0198efc8-854d-4079-877a-149d3bb11af4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:02","userId":null}
{"durationMs":43.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"0289ef36-0288-4acb-8103-730144d1a7f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":62.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"38a1dff4-26f6-49a8-b43b-3953d3353169","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":154.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0f2dd09f-d2f6-42e4-91f2-c26f42269fd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":170.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fb3369e5-426b-489e-8f6a-065719b99fa9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":154.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"b1d5b0fc-5e82-4884-854d-1e7a8b5aa359","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":153.26,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"add2008d-bfac-49a8-9b08-22969fce0068","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":177.18,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"a5d4856f-4610-4e85-b316-de7d11cacc9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":197.69,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"bf033a57-fe2d-4626-a9c7-ec85de5ae7b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":35.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4f33c14a-820f-4516-9533-bce77b973e70","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":49.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"25042af7-d58c-4976-8d47-279d1b9784f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":48.34,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"cdb59497-75a3-4ae0-bd77-2e75d73d61ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":36.63,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"7675513f-de3e-4748-807c-d70ca6315b62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":935.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":367,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":401.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":503,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":517.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":518.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":471.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":504.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":517.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":353.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":354.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":355.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":356.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.2,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"97531e34-8c58-4339-9d91-cb671e54b218","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":65.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"fc8533d0-8a36-4cd7-be5e-35beabcff64e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:43:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":75.72,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"2b6d0c79-e4b8-4482-a445-0a20ffc9d948","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382580616-442334","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382580616-442334","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":32,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1789382580616-442334","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":45,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":381.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":385.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b15a7e55-536c-4e77-a70e-470a3ac8aadd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:04","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Payment History (0)","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":12.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5fc0ea5d-a693-4d5e-9589-b64485d97f0d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":79.04,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees?status=UNPAID","requestId":"77ac3389-00c9-4288-9413-82b4503dbb88","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:43","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":454.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:43: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":4.62,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"26794f5e-4098-47c7-a7b0-cffe3415be19","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:43: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":null}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:43: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":null}
{"durationMs":2.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c8adb25-1683-4332-9a8a-4f4eaaded562","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:43:53","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:44:00"}
{"durationMs":712.53,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"be029f22-6697-41c9-990c-b7b682ab53d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:04","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":9,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:44: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.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"90728160-64fe-4e43-aa1f-7566b27e384a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:04","userId":null}
{"durationMs":44.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"88893157-8005-4588-aa6b-484e7dded1e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":74.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"1e890301-3fec-4ca7-a3d9-02044422e496","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.17,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"00758626-7d77-4653-aa87-844064ada27b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"851b924d-30e9-4e5f-90f9-12a00cef4c77","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"25f53fcb-fcb5-4f44-9c64-562579fd06e7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"80c786d2-d321-4b22-abff-5671c2bc146d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"3b796497-fb60-466b-aaf2-ff3530e2b229","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.82,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"91cf769b-a868-4d38-afed-adc55da8950e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.13,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cb17cbaf-4495-43f4-a265-f77c04a98007","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.56,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5be5b99a-9d06-4d46-be2b-407e16a9d682","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.2,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"05085613-1cdd-4f1c-b3e1-b20eefcc5ba9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"bcb522ba-b609-4a8d-ac3e-fa40db5bdce7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"eb285626-56c7-4dac-95d6-0859c8e366fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"d38fdeaf-b267-4b1e-abb3-aa1173017d5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.99,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"04827c6e-1588-4a37-a9a4-19dae343c652","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.52,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"d942c7e9-fda5-415b-9822-4e936147085f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1005.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/school"},"durationMs":804.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":21.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e9e02eb9-3ace-455d-8f3c-72d796402ad8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.42,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"f993ce31-809a-459a-8cfd-03dcd0b83af1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"a7607cc8-83a7-4202-852b-169438579541","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":983.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/dashboard/revenue-trend"},"durationMs":1167.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/dashboard/attendance-trend"},"durationMs":1304.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/dashboard/grade-distribution"},"durationMs":1363.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/dashboard/recent-activities"},"durationMs":1539.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/school/enabled-modules"},"durationMs":1596.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":1603.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":1639.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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"},"durationMs":1694.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/school/mpesa-config"},"durationMs":1748.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/communications/sms/settings"},"durationMs":2419.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/communications/whatsapp/status"},"durationMs":2424.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/reports/dashboard"},"durationMs":1686.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/academics/grade-levels"},"durationMs":1687.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/school/terms?isCurrent=true"},"durationMs":1688.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/academics/streams"},"durationMs":1694.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/academics/learning-areas"},"durationMs":1695.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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.09,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2269d916-a8c3-4de1-9839-52065646ef1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.92,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"4f39bb32-5149-4298-ad77-549e5a5e6ea9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":310.75,"ip":"105.161.225.137","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":"87b1ea5e-42e5-491b-9100-72f0eb02bfd1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":292,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"f9c9fb86-42a4-4679-8af8-9d3aaa5c02f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":285.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"a59d0de8-272a-4e8e-8028-e3ae190cbe90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1789382662570-841777","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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","href":"/dashboard/academic/calendar","navId":"1789382662570-841777","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":59,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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","navId":"1789382662570-841777","to":"/dashboard/academic/calendar"},"durationMs":75,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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/years"},"durationMs":488.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/calendar/events"},"durationMs":652.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/calendar/holidays"},"durationMs":657,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/calendar/summary"},"durationMs":664.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"28d18c0f-ecb3-4589-aab8-c03bb49d2183","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c93baf0f-a5f5-4726-8465-30fda35cbdcd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Activate","name":null,"type":null},"durationMs":65,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":21.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3ec69d73-3f2d-4bf0-99c7-f27b1772444f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/terms/cmp8gtpme00d68bcnq5m8mk8x/set-current","requestId":"6a4d75f9-ef42-49cf-99b9-3706680df08e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.91,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"e56f6f2f-f898-4482-bce4-943973fee10b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.81,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"49d87c2d-6902-4b7c-bb63-f2b78d713a33","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Set Active Term","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"PATCH","status":200,"url":"/school/terms/cmp8gtpme00d68bcnq5m8mk8x/set-current"},"durationMs":474.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4cbbe0b7-f43a-4335-abc0-d194d0d67f56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.96,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"000f432a-f5f3-4450-b5ae-3c826ab18ef8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":399.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"/school"},"durationMs":403.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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/years"},"durationMs":750.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":20.42,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"306a778d-001d-4559-999c-a100c05f7044","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Events & Activities Manager","name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":11.27,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4cedf8fb-35bc-4970-864d-893dbcca16c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:44: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}
{"data":{"from":"/dashboard/academic/calendar","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:44: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":2.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0fca9e4e-a0ab-4306-aa1d-2f1b3bf2d115","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:47","userId":null}
{"durationMs":773.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"ecc91a1b-5716-46bd-a708-26a87aa1f93e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:56","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":8,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 13:44: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":null}
{"durationMs":2.59,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6f558028-b312-4d14-84f3-587080e6d321","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:56","userId":null}
{"durationMs":76.83,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ca837646-a77c-4234-8512-147087f8b844","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":165.57,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"c8ed2b73-b4ff-46ab-9337-29f0ecb663ee","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":346.02,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"11484838-a8b6-4aa4-b2e4-d4a0d3728d2a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":357.89,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1164889f-22b6-4a0d-a250-d1d11d7c23be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":348.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4ac3ab79-f9b3-492b-aed4-3f810984604b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":352.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"fe9934c0-802b-43fb-b985-8197c5c9fe76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":348.64,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"f399f0f1-2f41-43aa-bc74-c174ac2385b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":391.7,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"e22e2127-e246-4cce-8e38-9e5897c967b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":34.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"16508d55-c832-47ea-89ae-0467eb06e7e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":62.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"513d0011-4180-47ae-8c37-4816cfe8444c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":68.31,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"ea055c28-12d0-4788-bd62-ba5f5f115c61","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":62.71,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"9f8f396a-17fc-4db8-92a8-bdae6eb7f18f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1089,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":428.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":537.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":713,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":718.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":719.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":682.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":691.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":716.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":15.12,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d94c46ce-38d6-452d-b343-250529b624da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":421.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":440,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":440.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":462.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:44: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"19352922-b986-4e5c-8b36-acfe0c663c31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:44:58","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:45:00","totalConnections":1}
{"durationMs":56.38,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"9866d97f-a705-4b7a-9a97-7c6a26045ac1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:45:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":109.15,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"1bf304fe-82b8-495c-908c-4ce015b3b71f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:45:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382697846-369858","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:45: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382697846-369858","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":29,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:45: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1789382697846-369858","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":45,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:45: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":352.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:45: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":401.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:45: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.25,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ec297411-e043-4ad0-979c-c9ec017eab27","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:45:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3978e7e5-11c7-42f5-ad15-ea98562dfc5e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:45:02","userId":null}
{"data":{"id":null,"label":"Payment History (38)","name":null,"type":null},"durationMs":90,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:45: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":5.57,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"45eba178-96a8-4f18-b7fe-21569d024533","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:45:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:46:00"}
{"data":{"id":null,"label":"All Academic Years","name":null,"type":"button"},"durationMs":125,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:39","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":30.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3703cfc4-3a35-4db0-95ab-71aee6ef0164","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:46:39","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"All Terms","name":null,"type":"button"},"durationMs":174,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:40","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.68,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9581905-ce99-4330-bc9d-e0a669649390","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:46:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"All Statuses","name":null,"type":"button"},"durationMs":190,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:42","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":4.91,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c4f4983e-fab1-4408-8c35-bb05683628a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:46:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":0.92,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d35b5d38-ed7f-4a24-aad0-ebdee9f18d6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:46:54","userId":null}
{"durationMs":83.4,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"f3dec512-e6cb-4f5a-b8ac-315c8e907c11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:46:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":107.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"79e33d10-a4da-4265-858d-f17590ffe96b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:46:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":16.59,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"eb969c6c-6c55-4e87-be4e-cc58e98cd125","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:46:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":325.64,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"147017cf-6ebe-4f69-a5ab-6e3ef2c18cfa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:46:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":325.3,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f55c56b5-d221-4450-b625-6f70eaf0e20f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:46:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":319.88,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"cf75d242-5f96-44d6-b802-330a6781a1c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:46:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":347.99,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"ade6d37d-941c-4f64-bb0b-595322e92006","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:46:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":385.69,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"206bc703-8457-4073-a8ca-c108cfa48060","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:46:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":524.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:56","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":526.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:56","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":337.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:56","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":754.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:56","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":755.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:56","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":756.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:56","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":757.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:56","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":764.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:56","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.5,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7c29c430-6851-4325-9ac6-47859ade8e04","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:46:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"All Academic Years","name":null,"type":"button"},"durationMs":100,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:46:58","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ec7e2ecd-1a63-47b0-9f33-c3a9e998ce72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:46:58","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"All Statuses","name":null,"type":"button"},"durationMs":95,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:47:00","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"All Terms","name":null,"type":"button"},"durationMs":168,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:47:00","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.78,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"52986333-4fb4-4a5c-8e4b-997b02323585","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:47:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:47:00"}
{"data":{"id":null,"label":"All Academic Years","name":null,"type":"button"},"durationMs":84,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:47:02","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.23,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"507dbc30-cafe-41e0-962f-fdd623098eb8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:47:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":37.65,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"a45377fc-d173-466d-9fde-724a5e53ac8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:47:09","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":27,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:47: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":396.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:47: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.12,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24e57c06-eaf2-4da0-bf46-e9246bdfabc4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:47:10","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:48:00"}
{"durationMs":72.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b7159c3a-d20b-4d2e-a160-e191eb444dae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:48:58","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":69.37,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6f599e78-61ab-4c3b-bf21-f24051187570","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:48:58","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1091.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:48: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1094.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:48: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5304e67a-03a1-4c64-b940-9a72a44f39f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:48:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:49:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.33,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7e61194b-7e2b-4435-960c-8abc3e0ff8e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Payment History (38)","name":null,"type":null},"durationMs":102,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.2,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e903070-2d16-4d9f-a6a0-d78bc4442b59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":63.79,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/attendance","requestId":"67b6d2cf-e072-4d37-9c14-19c5c6e3e6c0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:12","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance","navId":"1789382949126-334503","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance","navId":"1789382949126-334503","text":"Attendance","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance"},"durationMs":401,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382949126-334503","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance"},"durationMs":416,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/attendance"},"durationMs":357.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9a536451-1f01-4eda-b75d-d7aecd9eac4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:13","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","navId":"1789382952692-859573","text":"Academic Results"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.66,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"381f537d-4c97-4e66-a702-31578476eda7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:16","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":238.84,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/results","requestId":"8dcfd021-bff9-4b59-9486-11129171f6c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":308.62,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/cbc-grades","requestId":"34044335-2445-4132-b4b9-1cdfa04f4792","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":334.21,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8","requestId":"f12ae24b-727b-47dd-8bb9-0cc663710eb9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":20.39,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/cmp8gtpz200fy8bcnxg8120p8/academic-history","requestId":"dda38d16-303e-4ab7-8382-6b9bd0fc19df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-14 13:49:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","navId":"1789382952692-859573","text":"Academic Results","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results"},"durationMs":1143,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance","navId":"1789382952692-859573","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results"},"durationMs":1143,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/attendance","navId":"1789382952692-859573","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results"},"durationMs":1152,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/results"},"durationMs":566.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/cbc-grades"},"durationMs":617,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8"},"durationMs":649.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"95c5127d-68e4-492a-99f7-23876535805d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:17","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":25.24,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/cmp8gtpz200fy8bcnxg8120p8/academic-history","requestId":"8366e369-daff-42a2-9dde-bd1acaf69f07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":404,"timestamp":"2026-09-14 13:49:18","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":404,"url":"/students/cmp8gtpz200fy8bcnxg8120p8/academic-history"},"durationMs":309.7,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.27,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7553abfd-03a3-4a1a-9e4d-42dfe6086647","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:18","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":404,"url":"/students/cmp8gtpz200fy8bcnxg8120p8/academic-history"},"durationMs":336.5,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.93,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ac598f63-a3b2-49bb-9295-02b28b154fef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:19","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":"radix-:r1h:-trigger-current","label":"Current Term Snapshot","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.4,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bc2d40d7-32fa-450d-a91b-c64926c45718","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:21","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":115.82,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"fc3fc17c-462b-4d4f-bf82-300ce5df613d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:49:21","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382958448-645207","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1789382958448-645207","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":38,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/results","navId":"1789382958448-645207","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":60,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":416.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"535e5eef-7f73-4a45-a2f4-faa6137505fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:22","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Payment History (38)","name":null,"type":null},"durationMs":98,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":5.91,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"53a43dbf-008f-45c6-9e47-905bba7289d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:25","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:49: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.63,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"398f4f69-af8b-4370-929c-d915cd581afa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:49:30","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:50:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"568021b0-f3df-4c3c-895a-5a4175c2bd26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:51:00"}
{"durationMs":60.23,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"64c6d273-ffd1-4851-8356-362d544d9f9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:51:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":57.58,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f4515a87-9d8d-48d8-b2de-44c11d9736d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:51:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:52:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":930.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:52: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":931.6,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:52: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.26,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8e115e66-bafa-4b48-8e3b-a64d6c4b0bf8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:52:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":30,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:52: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.89,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bcccd4b5-43ac-48c7-aa82-438747d99bc8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:52:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 13:55:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a8b0c7f-1a54-4faf-9f61-5539a301b965","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:58:00"}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"582f9d0f-94ca-4d56-9402-a08ff985be48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:58:24","userId":null}
{"durationMs":69.89,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"9d68ec5a-f444-4f23-96df-682ef014cbe9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:58:46","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":47,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:58: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.76,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7790f5a4-0fad-4c59-89fd-8d3d96030754","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:58:46","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":906.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:58: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.41,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"91eb9a3b-ef2f-4b42-8152-fa3f1a758193","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:58:47","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":126.57,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6825d47d-4fe7-41c7-92af-3f56990d7e80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:58:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":134.45,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0d4bf115-b773-49b6-b04d-ee1772992228","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:58:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 13:59:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":449.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":450.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.9,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a622c9e2-7cc9-47ba-b9ef-fd197aba525e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:59:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":1.16,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18bd4e33-be26-4454-85aa-571cd7044033","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:59:02","userId":null}
{"durationMs":61.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"f8fca409-128a-4b1f-9477-a435c288f3ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:59:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":125.87,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"1dd285ae-45d7-4c3e-8db3-a3720a22d976","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:59:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":32.15,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"7ba97efd-7a93-4a76-ae83-793c632946b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":78.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e3385efc-fb04-4b53-a223-9e16990ae9a5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":75.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"68423dce-54fd-4417-92a2-0bf3a7c4df12","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":86.4,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"216332e1-8b4b-4d11-98b6-4161fbc723a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":96.67,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"a25b7f93-0c1f-43af-b25c-b81f51ee6c38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":21.1,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"b3c8a6a5-b330-40d3-8824-7ecbf9ffc358","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:59:03","userId":null}
{"durationMs":174.07,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"5a2420bd-460d-466b-afff-a128ed65586d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 13:59:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":601.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":714.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":341.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":367.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":369,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":392.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":408.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":498.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.53,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08f760f1-7a1b-4793-bfb0-0c3de4adf46b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:59:04","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Payment History (38)","name":null,"type":null},"durationMs":105,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 13:59: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":35.62,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"43683d6e-40b1-465e-83cb-c14819560fa6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 13:59:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 14:00:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04f24e82-f21b-4c5e-9c3c-53144087cb1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:00:02","userId":null}
{"durationMs":3.35,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cfff1ff2-74cb-4228-b7ed-dfa5096e9d77","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 14:00:03","userId":null}
{"durationMs":2.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7f4fa2f7-24c2-444c-9639-5cc9772014a9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-14 14:00:03","userId":null}
{"durationMs":127.33,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"c8274b2f-9cd7-46cf-9655-6314eaaef65c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:00:04","userId":null}
{"durationMs":50.48,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"98f62c57-4cef-4db1-9eea-b75f41af1043","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:00:04","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":54.46,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"49b53837-3fcd-40c2-b5bc-4e3a5e7da82f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:00:04","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":370.2,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:00: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":370.3,"event":"API_ERROR","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:00: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":367.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:00: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":368.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:00: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":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.19,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8448b8ff-2fd9-40ad-ba13-f30a4bd5faa4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:00:04","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:02:00"}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 14:02: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":null}
{"data":{"from":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 14:02: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":null}
{"durationMs":1.29,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9b198b3-9467-41e5-a08c-4027b636e69e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:14","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 14:02: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":null}
{"durationMs":1.06,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8e33348-c893-4a97-94af-cf04d954a869","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:26","userId":null}
{"durationMs":754.28,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"608cd21c-0711-4e8d-a8c6-82182a96adec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:27","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 14:02: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":null}
{"durationMs":1.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"19b566c6-eb34-4bc2-b346-121e82b0d668","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:27","userId":null}
{"durationMs":64.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"61571c27-d807-49c7-a192-de913a640ce3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.14,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"4b577d72-5fc7-48a2-a719-62e4798fe7f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":151.12,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b96e357d-dfe5-4d5a-b044-a64cf34f4c77","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.42,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a9e66e9b-7c8d-4d3d-b705-bef121c9687d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.09,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"8cfee534-1ad3-431e-a8f5-6c5ca2a4c1f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.23,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"bf857dcb-752c-4970-8227-33f437adb907","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.91,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"07dbe51b-f3d7-443f-a8f9-c1242b587866","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.49,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"2ae3c902-96ca-4983-9bdc-00e92b724419","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"502773b5-0c5f-47a5-a847-037d0bab7bb2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.73,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"5a1c47d0-55ea-4aa1-8949-13c03da3efee","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:29","userId":null}
{"durationMs":42.94,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"175971df-579f-4bae-8279-fab942688593","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1130.8,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/school"},"durationMs":697.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":16.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"40d94c1c-504e-4cec-ae6c-e5bcc2eeea01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.3,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"07d3b576-a492-41e0-a00a-087ef9f36e54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":101.56,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"ba81ac43-ed6b-4e83-a58e-bc6e1189f2f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":108.63,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"62c696b4-d1ee-496d-bf92-0d02719e4998","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.52,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"9a921208-4d2f-4045-9a08-4821292c9d80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":114.75,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7d5af324-7b7c-4590-bcb1-bf0895210540","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":151.98,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"a46c231d-f344-4f17-a59d-22730b975679","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.44,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"9a9aa1fc-24cf-43f3-a42c-84638aa4f1d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":100.89,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"1ba96527-6d90-4b50-bb64-a9193ed1d062","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":552.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/communication/notifications/inbox-count"},"durationMs":804.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/communication/notifications/unread-count"},"durationMs":814.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/communication/notifications"},"durationMs":963.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/reports/dashboard"},"durationMs":972.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/academics/grade-levels"},"durationMs":1046.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/school/terms?isCurrent=true"},"durationMs":1046.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/academics/streams"},"durationMs":1068.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/academics/learning-areas"},"durationMs":1135.2,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":22.54,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd8ae0c2-9f6e-4d2b-92f5-d531f2a2c9d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1048,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":200,"url":"/dashboard/revenue-trend"},"durationMs":1103.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":200,"url":"/dashboard/attendance-trend"},"durationMs":1173.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":200,"url":"/school/mpesa-config"},"durationMs":1173.7,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":200,"url":"/dashboard/recent-activities"},"durationMs":1230.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":200,"url":"/dashboard/grade-distribution"},"durationMs":1231,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":200,"url":"/communications/sms/settings"},"durationMs":1275.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":200,"url":"/communications/whatsapp/status"},"durationMs":1275.9,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":15.64,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"746c0ec1-6044-4116-a75b-8be957ed045f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.97,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"57881371-e7b0-4b74-91f6-75aaeeb8c69e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":114.8,"ip":"105.161.225.137","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":"912a326a-cfb7-4621-b5ca-eb2945b3764e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1789383748299-726972","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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","href":"/dashboard/academic/calendar","navId":"1789383748299-726972","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":684,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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","navId":"1789383748299-726972","to":"/dashboard/academic/calendar"},"durationMs":684,"event":"NAV_STALL","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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","navId":"1789383748299-726972","to":"/dashboard/academic/calendar"},"durationMs":705,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":21.61,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a25236a7-8391-4673-932b-4f9fe516999a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":112.77,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"f30a28c4-f635-468a-8d0c-560a5e903f87","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.74,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"87f95de1-7863-491b-ba41-2e5879da2d69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:02:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":446.1,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/calendar/events"},"durationMs":460.5,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/calendar/holidays"},"durationMs":497,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":"/calendar/summary"},"durationMs":513.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":21.08,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"90da1583-28db-4975-9b0d-7b8ca1dbdf67","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":25,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":20.88,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"77dbd155-7df2-4441-86b5-c5780b7cdb0b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":82,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":28.95,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"18e66b3b-721e-4d0e-8c49-2b97de7e3d0d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":19,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:02: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":18.6,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"688a76d1-9a3e-46c2-9d1e-521fcf539486","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:02:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Events & Activities Manager","name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:03: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.85,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b5dd8f5-ad4d-41f1-9e51-4ea9b3ba4ec0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:03:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:03:00"}
{"data":{"id":null,"label":"Academic Years & Sessions","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:03: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":19.15,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"39b8b5a4-9bb9-4f87-8206-017db3229042","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:03:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.15,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8e6f181c-6a9f-4476-b4b8-6a350b316500","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:03:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.13,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"faa1a692-8377-4c17-9eae-108166d0d74c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-14 14:03:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":383.3,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:03: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":200,"url":"/communication/notifications/unread-count"},"durationMs":462.4,"event":"API_RESPONSE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-14 14:03: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":20.79,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f9ecd3a8-5914-4c93-9608-467c09fd8268","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:03:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 14:03: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}
{"data":{"from":"/dashboard/academic/calendar","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"105.161.225.137","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-14 14:03: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":2.82,"ip":"105.161.225.137","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ae5216f4-7343-4416-a86b-027a7936f16c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:03:39","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 14:05:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd0864c6-0167-4944-9ae7-b1bc800c8816","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 14:10:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91fe885c-93a7-40f2-a920-f331bc4ff1a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:10:02","userId":null}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health","requestId":"2b6cc8aa-b718-4788-9116-1b1e04a82560","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:10:12","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:12:00"}
{"durationMs":186.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"6853c76a-2832-4791-b5a6-26713b421c04","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:12:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-14 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-14 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-14 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-14 14:15:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64f9357c-94d9-4714-abaa-bbeb0d2a1e23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-14 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-14 14:16:00"}
{"level":"info","message":"\nSIGTERM received. Starting graceful shutdown...","service":"cbc-sms","timestamp":"2026-09-14 14:16:09"}
{"durationMs":17.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0686415d-2817-4132-ad97-5eb76722d00d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:38","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":51.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?streamId=cmp8gtppb00dy8bcnm1lpuafg&date=2026-09-15","requestId":"94e9cd4e-7642-46ed-bdb6-e7b42f05d7e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:00:38","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"History","name":null,"type":null},"durationMs":28,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":22.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fba69072-7a28-486e-804f-4aa1c9a7c795","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:39","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":1145.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.58,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2dfce4da-bec2-407b-8d69-c6be05c954e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:40","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Roll Call","name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":10.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ac133b45-4ce1-4779-a510-b7faaf47cd36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:41","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":3.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"8416ce81-9bfb-41e3-80f3-ada651b22fc7","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:00:44","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":33,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":10.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9198c93-5c9a-41ca-bcbb-3a5996dae30b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:45","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"href":"/dashboard/class-teacher/assessments/formative-grades","navId":"1789502441308-601486","text":"Formative Grades"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/attendance","href":"/dashboard/class-teacher/assessments/formative-grades","navId":"1789502441308-601486","text":"Formative Grades","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":481,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/attendance","navId":"1789502441308-601486","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":496,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.33,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a4e5fa3b-5364-4096-b775-5df5014897ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":67.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"6d045bdf-afe8-4120-8642-b153d405887e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:00:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":26.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms","requestId":"db8cd846-51c6-4a37-9f15-a571cfba0626","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:00:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":109.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"36ba96dc-7a79-4fc6-9733-12f2a58f6a0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:00:46","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":58.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&streamId=&isPublished=true&limit=100","requestId":"8cb19f07-c7f3-4c1b-8cbf-31ec0902a60a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":401.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academic/terms"},"durationMs":404.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":459.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":416.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":12.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5dfb258a-5c14-4c2b-90b9-eaf61859aaed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:47","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Term 1 Current","name":null,"type":"button"},"durationMs":89,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Term 1 Current","name":null,"type":"button"},"durationMs":91,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":10.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"86706420-7a59-4540-a86e-8b7fe1da00b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:57","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Term 1 Current","name":null,"type":"button"},"durationMs":89,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:00: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":7.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"597f0a28-a027-4375-936b-cb144d1f04ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:00:58","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":51.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f1c4de84-1074-4d32-8aa8-23cd7f98e64d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:00:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":44.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"38dfa637-27a4-4e61-8ecf-32cf4c4ecb3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:00:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:01:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":401.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":390.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Select class...","name":null,"type":"button"},"durationMs":89,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":7.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f7763297-e3ba-4933-8e78-9bfe68d9145e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":982.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/students?streamId=cmp8gtpr100eg8bcnq5hk0fi0","requestId":"785f176e-f895-4033-9586-da3df5c56e79","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":1009.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&streamId=cmp8gtpr100eg8bcnq5hk0fi0&isPublished=true&limit=100","requestId":"1df1bb8f-40e2-4b26-9d4d-b4c70551bac0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/students"},"durationMs":1401.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1456.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"All / None","name":null,"type":"button"},"durationMs":86,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":10.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"326d2ab0-6a42-4be8-bed4-5cabf7e241cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:05","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Select subject...","name":null,"type":"button"},"durationMs":145,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":7.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2a9bae95-7f6a-4347-9f8e-b9984d2fd82d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:11","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":141.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/grades?streamId=cmp8gtpr100eg8bcnq5hk0fi0&termId=cmp8gtpme00d68bcnq5m8mk8x&learningAreaId=621de23d-85e5-11f1-8826-0250f227b463&assessmentId=1bc4c141-7909-4356-9f42-2b08fdc4fb8d","requestId":"70a7ee39-4179-4c33-9d41-74d35158b001","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:15","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Chemistry","name":null,"type":"button"},"durationMs":133,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/cbc/grades"},"durationMs":1594.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":30.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"811990ff-570c-4b9a-b9f0-7e5021a3461f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:16","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":42.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/grades?streamId=cmp8gtpr100eg8bcnq5hk0fi0&termId=cmp8gtpme00d68bcnq5m8mk8x&learningAreaId=a2413b65-b68b-4110-8f3b-b63329608835&assessmentId=1bc4c141-7909-4356-9f42-2b08fdc4fb8d","requestId":"84f4c1e1-89aa-4d35-88c3-344582edeac9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:16","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/cbc/grades"},"durationMs":747.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":12.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d958288c-29de-4315-ab58-6d82dfee919c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:17","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":1.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"bc561211-f045-4e5c-a121-6dfec9fdd023","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:24","userId":null}
{"durationMs":1.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42d2cc3a-3936-4db5-8183-37582b3f32fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:24","userId":null}
{"durationMs":14.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"8ce6186a-ba5c-4304-87bc-460f0977ea55","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:25","userId":null}
{"durationMs":85.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?streamId=cmp8gtppb00dy8bcnm1lpuafg&date=2026-09-15","requestId":"656bd0f2-e910-43c0-afeb-bd21f21e1829","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:25","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":57.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ff4ddca3-fd8b-454c-abed-72e809902e15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":287.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"092bde31-962a-4173-8262-17d58e099c9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":296.14,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e2b8cc85-afc5-4796-b821-b2c67d2041c4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":342.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e4a159f9-6093-4b2c-9486-648fb56a4616","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":301.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/grades?streamId=cmp8gtpr100eg8bcnq5hk0fi0&termId=cmp8gtpme00d68bcnq5m8mk8x&learningAreaId=a2413b65-b68b-4110-8f3b-b63329608835&assessmentId=1bc4c141-7909-4356-9f42-2b08fdc4fb8d","requestId":"9dde469a-35a4-483e-94d1-e86c4130f802","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":393.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"59ffb642-6837-4cd6-8750-a40e78db0e35","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":418.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/students?streamId=cmp8gtpr100eg8bcnq5hk0fi0","requestId":"f7fee459-6f58-457c-9413-1246b5c45589","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:01:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":1394.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1751,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1996.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":2000.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":2010.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/cbc/grades"},"durationMs":2090.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":14.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3bd7f52d-33f6-4d13-9bc4-29ef73fd618f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:27","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":2303.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/students"},"durationMs":2307.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:01: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":6.16,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6cde25b-073e-4311-a741-bfd51e80a962","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:01:27","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:02:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":27,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher/assessments/marks-entry","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:02: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":13.77,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"afbc717b-f3e6-4305-8410-43169f29a392","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:02:19","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":32.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/cbc/grades/bulk","requestId":"38d4c153-ca93-4f99-8cf3-64c9a7a0feb6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":422,"timestamp":"2026-09-15 23:02:23","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Submit 5 Marks","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher/assessments/marks-entry","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:02: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"POST","status":422,"url":"/cbc/grades/bulk"},"durationMs":375.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:02: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ab44de98-6601-4fba-8452-2eef526bfb25","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:02:24","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":100.22,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"87c7bcba-17c4-44dd-b8b4-4ed185da48ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:02:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":106.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"48ab991f-3e14-4ed3-8eed-a5261bbe5c2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:02:26","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":812,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:02: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":827.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:02: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.19,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ded4c031-2e9e-4ab0-9dcb-89abaeed75f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:02:29","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":2.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"e378c936-9dc9-4611-a15e-24e756967078","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:02:37","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":57,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher/assessments/marks-entry","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:02: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":12.72,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"84d7f3b8-f126-4677-adc4-bf39ad9e5fec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:02:38","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":34,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher/assessments/marks-entry","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:02: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":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":13.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f710a127-bc70-4add-9017-51c205e33abd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:02:45","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/teacher/assessments/marks-entry","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:02: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/teacher/assessments/marks-entry","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:02: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":4.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7c18e274-eb82-4ca9-a064-3d90f472f675","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:02:47","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":24,"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-15 23:02: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":3.13,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"66bbc3d9-682a-4d90-a36a-e9ed4c3bc5d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:02:53","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":29,"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-15 23:02: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.97,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1ad37dfb-a5c5-433c-8c30-a9983e92c9e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:02:59","userId":null}
{"durationMs":812.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"b607f876-a3c2-481c-b04b-77b9c9f85025","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:00","userId":null}
{"durationMs":97.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"b97e398a-8f0c-40f6-b93f-cde0dfc86ba4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:03:00"}
{"durationMs":65.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"7cb07e5b-51e3-44fa-a277-c0f0e7b0676b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"82b46808-e688-4142-9611-0bc6a4085beb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0cf628d5-83b0-4f06-8e3d-8b181c59d430","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4474c9ab-8af7-4ab4-8eaa-c50e832605a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":86.14,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"d782fd16-02ab-4d89-ab10-c52b6cd10c7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"0f0d7b2c-2fae-4230-8522-bd828848f7b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"ad291dd7-c378-4922-824c-0a19af2ea6ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":120.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"41a477ca-da4f-4b94-b270-fcab2d6972c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.16,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"67dc6091-56e7-4aab-85fd-2cdf7bf2626c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"35926822-3ede-409b-b15f-890ca6952843","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"f2959227-1628-44e0-bdc9-e5e604c04972","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"c1c78f06-0bb3-4695-8f87-f73ecb336e8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.16,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"21c21f48-5f55-48b5-b579-8ca7e33f5b38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"065d1c3d-76a9-4a7e-9f71-936bbbafbfaa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"b7440dbc-92af-4efb-b42d-2ee12a67ad31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.19,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"8d7dce43-c1fb-49e5-8543-ac5027d087b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":6.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"d8d9cb29-9229-4acb-90e5-66293a56b7da","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:11","userId":null}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1946.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":435.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":628.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fb687383-5f7b-406a-b3a1-6fd2fb6e9c8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"4673479d-4dc7-4170-b830-f1694934e10a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms","requestId":"841f8807-3755-4be6-a354-8ac7b4f0b5a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"922e379b-6c49-40cc-b75e-7e2773c11c47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"079e6b95-2ddd-4ad2-aa7e-5745a4e80c0f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"6fb848ad-2c42-4619-8f76-c832b12b20fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"e7840a1a-34ab-4bbe-8281-b20fa87190fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b5efef33-1bfd-4c46-9148-de7717ecdce5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"b5503a60-a1a9-4060-83f0-24984f809e7c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.46,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"228d1b8d-566b-45ee-a2d8-07c3b6db3c53","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.16,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"ca59beff-72bb-4146-a212-47c7fe7de4bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"9e2b4382-6b32-4339-9dc8-caa6fa453ddd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":879.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":928.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1030.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1223.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1308.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1460.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1726.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1731.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1861.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":31,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":77,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"href":"/dashboard/academics/cbc-grades","navId":"1789502582170-68673","text":"CBC Grades & Results"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"from":"/dashboard","href":"/dashboard/academics/cbc-grades","navId":"1789502582170-68673","text":"CBC Grades & Results","to":"/dashboard/academics/cbc-grades"},"durationMs":240,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"from":"/dashboard","navId":"1789502582170-68673","to":"/dashboard/academics/cbc-grades"},"durationMs":282,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":7227.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":7235.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":7204.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":7370.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":7395.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":8058.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"id":"radix-:rf:-trigger-manage-results","label":"Manage Results","name":null,"type":"button"},"durationMs":15,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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"}
{"data":{"id":null,"label":"Teacher Uploads","name":null,"type":null},"durationMs":34,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":24.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cbe80897-1cc1-485b-aa7a-66ef5a381f69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.58,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/776515a8-d0d3-4b84-bfef-84387f9ee7d0/results","requestId":"b12ed76c-ba71-4a3e-a01d-31afe9a5b189","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments?academicYearId=cmp8gtpm300d48bcnc9mas3i7&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"b9adb549-9789-41c8-be5a-d8ebcfce24ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":74.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"8aa6ff05-0d63-45d8-8170-0533d2864ef7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results","requestId":"d407aa84-773b-4003-ba76-d8ef424a0b1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":11798.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":5693.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/terms"},"durationMs":5698.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":6687.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":6692.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":6695.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":4493.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":4904,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/teacher-assignments"},"durationMs":5246.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":5627.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":5694.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/776515a8-d0d3-4b84-bfef-84387f9ee7d0/results"},"durationMs":1568.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":2182.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/teacher-assignments"},"durationMs":2189,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3f8d7075-40d8-4197-a2f3-006a7c986171","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results"},"durationMs":1095.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"99f1a9f7-16dc-4ab4-9ed1-8b99c88cf282","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Student Marks Grid","name":null,"type":null},"durationMs":124,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":18.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0d17f1de-3bee-4414-a895-8ffb464505b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":3.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"1d46e601-ed56-467f-9e65-4caa3189d0bf","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:37","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":93,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e69abf92-331f-48bc-87ef-55ba371ae35a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=&limit=100","requestId":"f9b3dfa6-7b35-4423-89f4-858d7b2b9c8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.18,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"3013b3cb-feb7-4212-9f34-1bc3c17e3128","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"76c086a6-ac11-4cfc-9d23-ffaa1ca63c9e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:03:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":452.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"ddaa5ffc-1514-40fa-965d-aea73429cf11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":483.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics/institution-report?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"8839bb8f-7b12-4091-9564-35f45fae6f52","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":289.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=100","requestId":"7e41b76c-32fb-493a-a314-4264dd988e7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/assessment-analysis","navId":"1789502615101-907000","text":"Assessment Analysis"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","href":"/dashboard/academics/assessment-analysis","navId":"1789502615101-907000","text":"Assessment Analysis","to":"/dashboard/academics/assessment-analysis"},"durationMs":1977,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1789502615101-907000","to":"/dashboard/academics/assessment-analysis"},"durationMs":1977,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1789502615101-907000","to":"/dashboard/academics/assessment-analysis"},"durationMs":2150,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"932181e5-ea93-4658-ad4d-0961a55e7ca3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":942.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1170.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":2036.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/analytics"},"durationMs":3270.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/analytics/institution-report"},"durationMs":3991.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":3994.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:03: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1903ab9f-7db0-4d20-8be9-a512244e353a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:03:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:04:00"}
{"durationMs":77.07,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3beb64ef-ab3c-4313-940e-36a81aa4b18a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:04:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":11.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"83ea1b16-0982-47d6-8e75-8b1ebf82afd0","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:04:07","userId":null}
{"durationMs":56.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bcb7db92-4e11-4df3-9f1d-c567015f4aa7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:04:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":98,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0dae97f7-ce27-424e-afe5-720d3336dd17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":5642,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":6510.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1789502643625-353533","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0aad21db-4332-465a-8493-8ca3ac33ed4d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"5e812d12-12c7-42dc-bdde-e07ea841325f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"c203adf7-69f5-4281-9b3f-cafd21c2d50d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"6675220a-82c6-4c0b-a02f-68991e7b0fc4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":222.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"b9abfcae-dd86-4c4a-9272-ed4937ab9bff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.47,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"d1e20eb0-07ce-4bdc-a174-211cbe3e14a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:04:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","href":"/dashboard/cbc/report-cards","navId":"1789502643625-353533","text":"Report Cards","to":"/dashboard/cbc/report-cards"},"durationMs":5899,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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"}
{"data":{"from":"/dashboard/academics/assessment-analysis","navId":"1789502643625-353533","to":"/dashboard/cbc/report-cards"},"durationMs":5899,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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"}
{"data":{"from":"/dashboard/academics/assessment-analysis","navId":"1789502643625-353533","to":"/dashboard/cbc/report-cards"},"durationMs":6084,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":54.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0186dd7b-97a7-412f-8fc1-54a6ebef2ce3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":166.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"d1f126c6-f95c-43a5-a463-da97f361253f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":205.47,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"f8abfc97-f953-4315-8c10-d985f29bbc44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":289.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&academicYearId=cmp8gtpm300d48bcnc9mas3i7&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"0043a928-00f9-4d80-a8dc-b6d8e15ff6b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1351.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1355.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1383.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":2664.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":2673.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":2765.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":2759.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bac90283-1c08-4a89-b735-89f4308504d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":3502.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"51561ac4-3457-4b3d-9606-c8685fefd548","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":147.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x","requestId":"b53a6ff7-5afa-4794-b70f-467a24a4f9a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"f87a40c8-e382-4f1b-8f6f-a11a14d42e8f","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:04:27","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":2246,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":541.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":15.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fa56e3a1-b3d7-4831-a8a6-7fd41b55ae40","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":1171,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:04: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"49e6103f-72d0-4726-8d36-bf207e072972","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:04:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef138d36-d176-4390-a8b2-017b266e12ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:01","userId":null}
{"durationMs":100.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8a1df2c2-bdad-4ddb-88ad-3a7596d6c894","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:05:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bb160a9d-964e-46a9-8a61-a9a0ef6f01f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:05:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":630.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":490.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.67,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c33c01b4-989f-4bef-b0f8-558d221a8555","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"5cd017d0-ea27-4fde-8423-9e066a890230","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:05:12","userId":null}
{"data":{"id":"radix-:r84:-trigger-customize","label":"Customize & Preview","name":null,"type":"button"},"durationMs":12,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"20fc12b3-f068-4a6c-9a15-0469ce9a7b38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":4.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"3969c22e-f3da-45e2-8ce6-7c3da60e0385","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:05:21","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":82,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05:21","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.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"633677ed-0f32-4617-a2e4-98e4a91bfd9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PROJECTS","name":null,"type":null},"durationMs":27,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":29.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2a995d1b-4116-40dd-bc0a-df0436ed84a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"PROJECTS","name":null,"type":null},"durationMs":28,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05:43","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.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7a324db7-3cea-44a7-8afb-ec689bd61c14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-dashboard","navId":"1789502744067-941459","text":"Fee Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64e9bf57-d052-436c-9625-195646fa9440","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/debt-aging","requestId":"89cf63dc-d916-4dbe-a552-02afa14ac1ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/collection-velocity","requestId":"2484d14d-1e6d-495e-848a-e4a4cd5c5423","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"3ce59134-f0d0-4e9f-bc72-376614ad0a6d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:05:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":194.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/payment-segments","requestId":"96e79b33-c10b-4704-93e5-88dfae3344d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","href":"/dashboard/finance/fee-dashboard","navId":"1789502744067-941459","text":"Fee Dashboard","to":"/dashboard/finance/fee-dashboard"},"durationMs":2080,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1789502744067-941459","to":"/dashboard/finance/fee-dashboard"},"durationMs":2080,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1789502744067-941459","to":"/dashboard/finance/fee-dashboard"},"durationMs":2174,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a38554e9-9f8e-499f-b9a6-8f7ef7eb1c64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":110.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/forecast","requestId":"34deee7e-e50b-4232-b88f-d5b9aa1ce847","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":162.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"ee64090c-247a-4407-b454-973b81298170","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/debt-aging"},"durationMs":927.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/collection-velocity"},"durationMs":1252.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1311.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/payment-segments"},"durationMs":1738.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/forecast"},"durationMs":2529.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a57bb09-b05f-4013-8034-62d139bb7d97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":2647.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:05: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ef1052d4-fe83-4ca1-83cb-555fa7f646ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:05:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:06:01"}
{"durationMs":1.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"f407e27b-d98e-435b-89d0-877bff88c55e","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:06:03","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":99,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":25.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e1833f83-589e-4543-86f1-04742800addd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":30,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":23.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d9cd575b-51e7-4205-903a-3c63efd243de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":123.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"922dfa5e-faf7-4f8e-84bb-7909eb4d41e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:06:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"75863901-69c5-4b38-9c75-783261689fd0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:06:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"22f254b1-2b0e-48c8-9e42-1e6fb99768b9","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:06:11","userId":null}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":888.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1667.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"10c87a6a-1d0a-4849-9a12-82bf3bdb6f2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":103,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"432b3b5b-a66a-4469-ad0a-2e1e21805c28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/invoices","navId":"1789502772547-432517","text":"Invoices & Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.14,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f6c991e4-99a4-40a9-90f5-90e98dcb933d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.22,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"38565c48-651c-4250-9f5d-0d26f1c7f4d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"21b26331-a421-45ea-b828-bc15f382303b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","href":"/dashboard/finance/invoices","navId":"1789502772547-432517","text":"Invoices & Reports","to":"/dashboard/finance/invoices"},"durationMs":1206,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06:21","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":"/dashboard/finance/fee-dashboard","navId":"1789502772547-432517","to":"/dashboard/finance/invoices"},"durationMs":1206,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06:21","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":"/dashboard/finance/fee-dashboard","navId":"1789502772547-432517","to":"/dashboard/finance/invoices"},"durationMs":1318,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06:21","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":103.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f602ca82-5e7a-4c32-8868-9cbe459f2805","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":420.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments?page=1&limit=20","requestId":"592e4745-1c71-4251-b21a-987a87a8f126","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":497.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"e44c9b31-26e5-41a4-9b2a-4eef8701ef64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:06:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":768.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?page=1&limit=20","requestId":"0bc3d49b-b83f-45b6-87bd-0563aa5eca72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1629.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":2006.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2315df32-ec56-4373-90b4-97aa881ac517","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments"},"durationMs":4362.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":4365.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":5438,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.16,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"62d197bf-4958-404c-9986-7d109b9732c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"4cd1f22e-3cb6-45e0-a615-a6eb380a9d9b","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:06:57","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.63,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3679297c-6b57-4aff-9481-c0494b290ac9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":79,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de3329eb-2d40-4ff7-8117-a1c6f9fbb643","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:06:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:07:00"}
{"data":{"href":"/dashboard/finance/fee-structures","navId":"1789502816425-280389","text":"Fee Structures & Rules"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"802626c3-5d14-423f-aa3d-261936b2ccc8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dynamic-rules","requestId":"753e2854-2d99-4fc3-b4b9-abdd4dda3aac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":133.78,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/fee-structures","requestId":"e6e8fe60-d2cb-44c5-bd02-026ec0ca7a56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"70114b36-6d1e-410b-a836-0f7121131287","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":109.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"3c595335-517f-480a-944c-206d8550a4be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"69c45a1f-dbfe-4010-a7ab-e52dce94d76a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:07:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","href":"/dashboard/finance/fee-structures","navId":"1789502816425-280389","text":"Fee Structures & Rules","to":"/dashboard/finance/fee-structures"},"durationMs":1185,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1789502816425-280389","to":"/dashboard/finance/fee-structures"},"durationMs":1185,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1789502816425-280389","to":"/dashboard/finance/fee-structures"},"durationMs":1206,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dynamic-rules"},"durationMs":705.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1681c5cb-5f00-423b-a363-299b780e442c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/fee-structures"},"durationMs":1067.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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/classes"},"durationMs":1211.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":1725.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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/years"},"durationMs":1747.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":14.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c9ca892-a789-40c6-86d9-c97663350870","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/additional-fees","requestId":"f8a03c81-1738-4eec-8154-7c3e8191cf1e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Junior Secondary","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Additional Fees","name":null,"type":null},"durationMs":78,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"693fae18-056e-4ba4-a0c6-3d18f2dcd9ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/additional-fees"},"durationMs":548.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Dynamic Rules","name":null,"type":null},"durationMs":70,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.78,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ada61e54-1fb4-4e7f-94f8-ca611230de17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f35b2e12-4961-47ea-bac4-6ddf2231ff93","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.14,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9741482b-a4d3-4da6-bf42-5b6899b2d553","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Additional Fees","name":null,"type":null},"durationMs":37,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":428.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":522,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"06e6c95b-298b-458e-920a-3f107b1e4d3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"e8f0a1f3-fcff-41ff-a6be-11066cad8e19","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:07:11","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":76,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.07,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"92c7a64b-8cad-4993-89b5-e7f5f21ccc74","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"6ff6c908-1247-4e5e-bf94-374f696a5eac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"00e9c87e-7b58-4c02-8e25-848d4b240cdf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/invoices","navId":"1789502831049-520762","text":"Invoices & Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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"}
{"data":{"from":"/dashboard/finance/fee-structures","href":"/dashboard/finance/invoices","navId":"1789502831049-520762","text":"Invoices & Reports","to":"/dashboard/finance/invoices"},"durationMs":113,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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"}
{"data":{"from":"/dashboard/finance/fee-structures","navId":"1789502831049-520762","to":"/dashboard/finance/invoices"},"durationMs":201,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":496.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":24.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f5bd1afa-70b5-4e00-a638-7dc9a0123d68","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1426.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.46,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"257fabd6-bc67-408e-8d1a-e910afeac210","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"9a31068f-0b6e-465b-a403-4ea102c46b17","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:07:20","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":77,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07:21","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":26.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8e5af983-faac-4d07-bb60-01d9b210010d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/payments","navId":"1789502840598-510611","text":"Payments & Deposits"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0bb1d52d-4918-4804-bc58-8d13304b2206","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"481db8fd-efe1-4792-aba5-05c345f8d490","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":303.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices","requestId":"667f1c7d-d24b-4912-b210-7328e9f9b5ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":500.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"f8e01459-dbb5-42bf-92f7-3835c525b17d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"907bcbe5-9b80-44a8-a607-aacbd7f93ada","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:29","userId":null}
{"data":{"from":"/dashboard/finance/invoices","href":"/dashboard/finance/payments","navId":"1789502840598-510611","text":"Payments & Deposits","to":"/dashboard/finance/payments"},"durationMs":2353,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":{"from":"/dashboard/finance/invoices","navId":"1789502840598-510611","to":"/dashboard/finance/payments"},"durationMs":2353,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":{"from":"/dashboard/finance/invoices","navId":"1789502840598-510611","to":"/dashboard/finance/payments"},"durationMs":2460,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":23.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"976dd90c-1378-4da5-a9c4-9bcb3a448317","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/payments?bankVerificationStatus=PENDING_VERIFICATION,UNVERIFIED&limit=100&sortBy=createdAt&sortOrder=asc","requestId":"4a069cee-d509-47e4-96ca-a15e00000129","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Unverified Deposits","name":null,"type":null},"durationMs":89,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":2119.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":5179.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":6683.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":6686.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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"}
{"data":{"method":"GET","status":200,"url":"/finance/payments"},"durationMs":5201.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":15.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2d09205d-cb23-4ddb-8f25-8883e3eb6953","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"d4c611e7-8b90-4c59-bd68-8545d6af1c2c","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:07:58","userId":null}
{"data":{"id":null,"label":"Payment Settings","name":null,"type":null},"durationMs":21,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"73fbd162-4155-4966-9152-c0095e8de23a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":72,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3d9adf44-a9b8-4d78-b075-113e165c6c63","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:07:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:08:00"}
{"data":{"href":"/dashboard/finance/expenses-income","navId":"1789502877195-49","text":"Expenses & Income"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9a87be92-779d-45c2-ae11-084b47ce1ec1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance-transactions/dashboard/summary?startDate=2026-08-31&endDate=2026-09-15","requestId":"d87dfff0-bd8a-4c18-8fb3-6ce7db09eaaf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":80.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance-transactions?startDate=2026-08-31&endDate=2026-09-15&limit=100","requestId":"e9de1027-2006-45fc-9142-d1b8dc7bb13f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.44,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"db27d3be-6bc3-4a28-a90f-57d01f008815","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:08:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance-categories/tree","requestId":"a5787e72-03f6-48b4-b8c0-1c773cf9b6b8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":364.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance-categories","requestId":"e1a05fc0-ebce-4286-9026-a19488df467c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":142.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance-budgets","requestId":"e30abb4e-9bbc-4afb-9d41-e4efd5217d42","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.57,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance-budgets/reports/vs-actual","requestId":"dc3b48a7-9fa4-4967-ae94-7620f7ebcd90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance-transactions/reports/by-category?startDate=2026-08-31&endDate=2026-09-15","requestId":"8ac74781-9287-4c1e-b16b-08178a67c920","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Unverified Deposits","name":null,"type":null},"durationMs":99,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","href":"/dashboard/finance/expenses-income","navId":"1789502877195-49","text":"Expenses & Income","to":"/dashboard/finance/expenses-income"},"durationMs":3355,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/expenses-income","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1789502877195-49","to":"/dashboard/finance/expenses-income"},"durationMs":3355,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/expenses-income","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1789502877195-49","to":"/dashboard/finance/expenses-income"},"durationMs":3439,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/expenses-income","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance-transactions/dashboard/summary"},"durationMs":421.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance-transactions"},"durationMs":728.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"07426423-afdb-479a-b41d-6cc019a1ba91","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"86764514-b803-49fd-b158-2f4e91f6b39a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:08:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":5.13,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"850374bd-9a00-49d3-aa21-5049106ebf9f","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:08:10","userId":null}
{"durationMs":53.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"244d6750-86b5-43a5-93e1-0cb561e0d34d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:08:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":998.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance-categories/tree"},"durationMs":1371.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance-categories"},"durationMs":1664.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Categories","name":null,"type":null},"durationMs":56,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/expenses-income","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Budgets","name":null,"type":null},"durationMs":71,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/expenses-income","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance-budgets"},"durationMs":3492.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance-budgets/reports/vs-actual"},"durationMs":3493.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance-transactions/reports/by-category"},"durationMs":4092.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":83,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/expenses-income","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe49e462-9c7e-41a4-adb7-03a44a2d865f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1117.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1339,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"82a81127-2db8-40c5-a583-66f0c9448e0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/mpesa","navId":"1789502887956-595134","text":"Payment Methods"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/expenses-income","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7f014a4a-2d55-4a1e-8c5d-002e2a1f3d50","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"2bce2b17-8af0-4f70-8306-309d0cf86d31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:08:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/details","requestId":"c6d889eb-06c6-4bf6-8a71-4866e49402e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:08:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/payment-settings","requestId":"a1da7348-d762-41db-8577-1316cd6fc0f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:08:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"102.0.11.44","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-15 23:08:14","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"58f57e1c-cae8-451c-a964-887cb47b990a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-15 23:08:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/expenses-income","href":"/dashboard/finance/mpesa","navId":"1789502887956-595134","text":"Payment Methods","to":"/dashboard/finance/mpesa"},"durationMs":1177,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/expenses-income","navId":"1789502887956-595134","to":"/dashboard/finance/mpesa"},"durationMs":1177,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/expenses-income","navId":"1789502887956-595134","to":"/dashboard/finance/mpesa"},"durationMs":1250,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":384.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/details"},"durationMs":717,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"576e6a48-feb0-4f4c-9a76-8af2c8cf865f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"102.0.11.44","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-15 23:08:15","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"1833fbbf-163b-49d1-a387-a32a9c2c9335","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-15 23:08:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/payment-settings"},"durationMs":1042.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":1088.3,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f2bf88c3-eb5a-4633-ae89-3c79d8b3f046","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":390.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":13.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93d2850d-323f-436e-b4fe-f1604f0cafca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.14,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments/mpesa/callbacks","requestId":"34f6361c-7f5f-4edb-8813-0d1258ddc8e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Callbacks & Failed Payments","name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments/mpesa/callbacks"},"durationMs":444.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.77,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"82109ad0-fc4a-4849-82ae-7dbdcf66559d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"M-Pesa Config","name":null,"type":null},"durationMs":65,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08779e25-45b9-4a23-bd46-c1f128ac3173","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":26,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":27.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"211dd7d8-d703-4f20-b5b2-2bb659272a8f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":25,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"94b09ea0-ba6f-4e2b-825b-15067b908a2e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Bank Accounts","name":null,"type":null},"durationMs":26,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a00fa19d-cc42-44b0-b558-945108e855a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"M-Pesa Settlement (Paybill/Till)","name":null,"type":null},"durationMs":40,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d03ed7b7-4323-4674-b2d8-b7b8b12a53e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Bank Accounts","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b05ffd9-962e-4a69-b088-bb208c1e0724","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Bank Account","name":null,"type":null},"durationMs":33,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"333446ed-65b4-4717-890e-ef802feb595d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Search and select a bank...","name":null,"type":"button"},"durationMs":105,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"036e1284-6841-46d0-b1e0-d3e5106b3e4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:08:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:09:00"}
{"durationMs":73.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"28a09743-b84d-4faf-b1c4-76981774117e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:09:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0bbb3cf2-e2d1-4e58-94ef-7e0d48fdd019","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:09:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":472.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":453,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a591c701-a1b0-45f1-a821-b20ed80cf868","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Search and select a bank...","name":null,"type":"button"},"durationMs":29,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e241acaf-1705-45aa-8d3c-a815f813d27a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":3.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"17673f3c-4df8-4395-8db0-5bbc6baebe73","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:09:20","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":71,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"801bdf15-06b0-44c0-b139-1a9078539950","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/integrations","navId":"1789502959279-189998","text":"Integrations"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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"}
{"data":{"from":"/dashboard/finance/mpesa","href":"/dashboard/finance/integrations","navId":"1789502959279-189998","text":"Integrations","to":"/dashboard/finance/integrations"},"durationMs":599,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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"}
{"data":{"from":"/dashboard/finance/mpesa","navId":"1789502959279-189998","to":"/dashboard/finance/integrations"},"durationMs":599,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/integrations","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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"}
{"data":{"from":"/dashboard/finance/mpesa","navId":"1789502959279-189998","to":"/dashboard/finance/integrations"},"durationMs":611,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":22.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"89e66d83-33a8-4742-9b40-ca7c8a3687e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/connectors","requestId":"d6494f41-2c8e-43fd-a18f-9cea93fc7320","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/connections","requestId":"eaa9883a-82f7-47a6-80cb-e8e3c81fe962","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations","href":null,"navId":null,"text":null,"to":"/dashboard/finance/integrations/connected-apps"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations","navId":null,"to":"/dashboard/finance/integrations/connected-apps"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/connectors"},"durationMs":799.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/connections"},"durationMs":804.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6546f1ab-5351-4eee-861c-71adfaa0ba82","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.72,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/staging?page=1&limit=20","requestId":"5b092f90-a4df-45f7-9f95-cb3254e25848","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Import Queue","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/connected-apps","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"/dashboard/finance/integrations/connected-apps","href":null,"navId":null,"text":null,"to":"/dashboard/finance/integrations/import-queue"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations/import-queue","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"/dashboard/finance/integrations/connected-apps","navId":null,"to":"/dashboard/finance/integrations/import-queue"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations/import-queue","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":31.73,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d69c939-76e2-4ad8-abf7-95d0257c0d88","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/sync-logs?page=1&limit=20","requestId":"7c1dfc6b-b052-4223-a3a7-e5082c5f90c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Import Queue","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/import-queue","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":{"method":"GET","status":200,"url":"/integrations/staging?page=1&limit=20"},"durationMs":415.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"Sync Logs","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/import-queue","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":{"from":"/dashboard/finance/integrations/import-queue","href":null,"navId":null,"text":null,"to":"/dashboard/finance/integrations/sync-logs"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations/sync-logs","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":{"from":"/dashboard/finance/integrations/import-queue","navId":null,"to":"/dashboard/finance/integrations/sync-logs"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations/sync-logs","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"680b60ae-4bc0-4a78-bb6f-d6ccd92f528d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/sync-logs?page=1&limit=20"},"durationMs":744.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"Bank Connections","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/sync-logs","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":31.44,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9f342e6f-1f12-4050-bb96-8d01a9261429","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/settings/bank-matching","requestId":"753be8a9-60fb-4e35-864d-2ace7bc72b8f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/integrations/connections","requestId":"89f8ffca-4e8d-4e35-a339-2c5450e9ab57","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:09:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/sync-logs","href":null,"navId":null,"text":null,"to":"/dashboard/finance/integrations/bank-connections"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/integrations/bank-connections","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/sync-logs","navId":null,"to":"/dashboard/finance/integrations/bank-connections"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/integrations/bank-connections","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance/settings/bank-matching"},"durationMs":697.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.63,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"171acc40-f193-4564-9fc0-554861997a4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/integrations/connections"},"durationMs":979.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":13.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"56ee5427-f902-4cf0-8bec-64507e341d2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":4.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"442815ef-54a7-4fb0-a44b-7c7fa2252709","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:09:38","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":68,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/integrations/bank-connections","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"40dea044-b054-402f-b6cf-ce3ea9faed2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/payroll","navId":"1789502976723-155996","text":"Payroll"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/integrations/bank-connections","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3449284-4569-4144-8e6b-914f6b19e84b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.56,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"dadc82e0-0a39-43ed-b1ce-7f4a316ec67e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":135.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/9/2026","requestId":"ccb76f5b-695b-4b28-a434-e744b01d5ad8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/integrations/bank-connections","href":"/dashboard/payroll","navId":"1789502976723-155996","text":"Payroll","to":"/dashboard/payroll"},"durationMs":1148,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09:43","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":"/dashboard/finance/integrations/bank-connections","navId":"1789502976723-155996","to":"/dashboard/payroll"},"durationMs":1148,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09:43","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":"/dashboard/finance/integrations/bank-connections","navId":"1789502976723-155996","to":"/dashboard/payroll"},"durationMs":1176,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09:43","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":"/payroll/runs"},"durationMs":615.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09:43","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.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b73df1cb-96e5-4290-975e-4461e326e064","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/summary/9/2026"},"durationMs":969.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fbf3ad30-7e39-4959-a806-b4438cc6fbdb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?limit=1000","requestId":"d5864835-14c2-4c40-b275-4881d63af470","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Profiles","name":null,"type":null},"durationMs":74,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.63,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1db358c-c141-402d-9e03-c4f248afc2c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll?page=1&limit=20&year=2026","requestId":"5e477387-ea3b-4174-9470-b69473b69977","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payslips","name":null,"type":null},"durationMs":82,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":1786.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll"},"durationMs":540.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:09: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc18de7f-5387-46bd-9865-f838a11095c4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":4.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"e661dbce-69b6-46de-a7a9-99c6a7ad4e3a","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:09:57","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":103,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa414912-c517-4e41-aa4d-588c7bd430e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:09:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:10:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51cd61fd-3e36-466a-a6f0-0263ccef5d15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:02","userId":null}
{"data":{"id":null,"label":"KRA COMPLIANCE","name":null,"type":null},"durationMs":28,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.57,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"892a6979-c11f-4802-9355-93ddcd07d5dc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4af0d2f1-ef60-476d-8e08-818e7288fbca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1b1495f2-a99a-498b-bfc4-4d89f9824d81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"KRA COMPLIANCE","name":null,"type":null},"durationMs":36,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ff87f26-50f5-4605-94c1-a82e78ffb75b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":435.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":464.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a31fbe6-2a37-49a2-b097-8e3f9544500d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/kra-compliance/tools","navId":"1789503009084-203920","text":"Compliance Tools"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.07,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d9bfb766-9320-4ac9-873e-ca8e06296480","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"1b2fee80-77d7-43cc-a073-7b1610a71b6d","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:15","userId":null}
{"data":{"from":"/dashboard/payroll","href":"/dashboard/finance/kra-compliance/tools","navId":"1789503009084-203920","text":"Compliance Tools","to":"/dashboard/finance/kra-compliance/tools"},"durationMs":938,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/kra-compliance/tools","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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"}
{"data":{"from":"/dashboard/payroll","navId":"1789503009084-203920","to":"/dashboard/finance/kra-compliance/tools"},"durationMs":938,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/kra-compliance/tools","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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"}
{"data":{"from":"/dashboard/payroll","navId":"1789503009084-203920","to":"/dashboard/finance/kra-compliance/tools"},"durationMs":959,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/kra-compliance/tools","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/kra-compliance/tools","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":24.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da09cfa3-d427-4898-b756-f8367dd7c820","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":189.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?page=1&limit=20","requestId":"015eb760-a262-4a45-86e9-d859c4144507","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/staff","navId":"1789503020969-26266","text":"Staff"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/kra-compliance/tools","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance/tools","href":"/dashboard/staff","navId":"1789503020969-26266","text":"Staff","to":"/dashboard/staff"},"durationMs":522,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/staff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance/tools","navId":"1789503020969-26266","to":"/dashboard/staff"},"durationMs":522,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/staff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance/tools","navId":"1789503020969-26266","to":"/dashboard/staff"},"durationMs":629,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/staff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a5fc1b93-96ff-45b9-ab2f-4bcc147b01ae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":221.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/stats","requestId":"671565a2-952c-4854-afcc-0d57ea49c4ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":1305.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"/staff/stats"},"durationMs":1688.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":29.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a30bd15e-f577-4851-b8a9-2ab621c29107","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"823c6aa9-5511-4688-9fc6-7b3957fb4e83","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:29","userId":null}
{"durationMs":3.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"cfcd8ac8-e645-4ab2-a57a-c843f845ce8c","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:30","userId":null}
{"durationMs":3.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/departments","requestId":"6d19dfe7-5937-4a68-9739-c785c2aa1ca3","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-15 23:10:31","userId":null}
{"durationMs":39.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"064cb613-f1af-4130-b014-6ee3cea18530","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.97,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"82562c39-f108-4089-adc6-bfe053f7582a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"014146ac-85dd-4cac-8b01-953c092bd69c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5bfe3baf-f6ca-4d66-9859-b5cf26a1d18b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":3.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/departments","requestId":"e09055be-1bdb-4a82-b8bb-7aba9823a478","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-15 23:10:34","userId":null}
{"durationMs":13.4,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"1252aace-ada9-4ec5-b657-c395bc6a4bcc","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:34","userId":null}
{"data":{"method":"GET","status":404,"url":"/departments"},"durationMs":1502.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1747.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1833.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1901,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"69c38151-e909-4e7a-b0a5-8e7e61da67f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":2673.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":66,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/staff/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/departments"},"durationMs":2465.1,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e2a12563-faac-4c22-b30b-dac35ce5b17e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/sms","navId":"1789503038931-281031","text":"SMS"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/staff/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f575adc-5959-415b-8bc3-8e9a061a6a8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.63,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"083f8a46-654a-4d82-94bf-23684d930117","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/history?limit=1000","requestId":"abed92eb-09c0-4d64-bc45-2d77f8846ab9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":91.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"e1c51c74-6b3f-4a9e-8d4c-15fed0776513","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:10:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/staff/new","href":"/dashboard/communication/sms","navId":"1789503038931-281031","text":"SMS","to":"/dashboard/communication/sms"},"durationMs":1893,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/staff/new","navId":"1789503038931-281031","to":"/dashboard/communication/sms"},"durationMs":1893,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/staff/new","navId":"1789503038931-281031","to":"/dashboard/communication/sms"},"durationMs":2010,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":588.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a9c088a-e399-4c9a-b40e-65c94f28b371","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Failed to check balance: Request failed with status code 401","ip":"102.0.11.44","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-15 23:10:46","url":"/api/v1/communications/sms/balance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":463.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/balance","requestId":"87394b88-86e8-40db-9880-1704c991c030","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-15 23:10:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/history"},"durationMs":1145.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1149.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/communications/sms/balance"},"durationMs":1492.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eac4ef9a-d8ac-4ce4-bc09-487e44d993dc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/history?page=1&limit=20","requestId":"be369eb7-9d88-43d6-be42-13b8987cc577","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r2l:-trigger-history","label":"HistoryHistory","name":null,"type":"button"},"durationMs":29,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/history"},"durationMs":489.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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"}
{"data":{"id":"radix-:r2l:-trigger-settings","label":"SettingsSettings","name":null,"type":"button"},"durationMs":21,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":20.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3dfed27b-d61d-4a34-97c4-801d81202bd0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:10: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8358e9ab-e5ea-4360-a3e0-3615d05eba7b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:10:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:11:00"}
{"durationMs":99.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a138bdb8-bf27-4506-be02-eefec18d24cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:11:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e171c434-e267-441c-8265-fddddc3a10de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:11:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":524.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.73,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1ddbee94-d199-4bb7-b2c4-d6cda1ea104f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:11:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":2676.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:11: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":19.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"519b09d3-242b-43f1-b17e-cbe09924f10f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:11:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:12:00"}
{"durationMs":3.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"26121f4e-8790-4f9c-aeb4-fa54306b426d","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:12:02","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":105,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"65ec538d-5642-4780-b736-d7f40f59bb4a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/emails","navId":"1789503138853-13701","text":"Emails"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"420667f4-0e50-4f30-ba70-3f95f06b3fc0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/emails/settings","requestId":"fc34ace4-92e3-46eb-8219-b0b7f6a7c5eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":281.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/emails/history?limit=1000","requestId":"0240d3b3-908d-479a-a55c-173bdd3d29a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/sms","href":"/dashboard/communication/emails","navId":"1789503138853-13701","text":"Emails","to":"/dashboard/communication/emails"},"durationMs":950,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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"}
{"data":{"from":"/dashboard/communication/sms","navId":"1789503138853-13701","to":"/dashboard/communication/emails"},"durationMs":950,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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"}
{"data":{"from":"/dashboard/communication/sms","navId":"1789503138853-13701","to":"/dashboard/communication/emails"},"durationMs":964,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":44.57,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"41b55e2a-064b-47c4-8957-e3f8d7cfae79","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/emails/settings"},"durationMs":945.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/emails/history"},"durationMs":1424.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5dd7f089-ba3c-4490-b519-7a67bcf0c593","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":3.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"c13cc2d3-7d0f-4dc1-8f3e-e20a3bdb4e25","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:12:32","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":86,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.35,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"947a03d3-84e1-4f74-850f-30b6452ee642","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8a6cffec-94a9-4212-81a2-090bc31c9178","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:12:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4d4ca3c8-fed5-4941-8270-c9b966e167a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:12:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2604.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6dcb7b58-d2d0-43fa-b484-238d60859b9a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":2187.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/library","navId":"1789503154842-182054","text":"Library"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c85798e6-7132-4658-ada1-882447a056f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"abcdd37c-e924-457c-aad3-8fe467f5ca30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"edd2c8f7-4d17-47ae-a307-be1e0aca9415","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.07,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"f0d0439a-ef41-44bf-8c1e-cc895b75c0c4","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:12:44","userId":null}
{"durationMs":76.58,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"e5b45787-8f59-40d3-a858-e44ff55ba97b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"568b0ff8-e072-49ad-ae35-0f734fb67ac2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/emails","href":"/dashboard/library","navId":"1789503154842-182054","text":"Library","to":"/dashboard/library"},"durationMs":835,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/emails","navId":"1789503154842-182054","to":"/dashboard/library"},"durationMs":835,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/emails","navId":"1789503154842-182054","to":"/dashboard/library"},"durationMs":874,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":68,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0a0e5517-41eb-45b5-853c-02c628eecacf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/library/stats"},"durationMs":2072.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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"}
{"data":{"method":"GET","status":200,"url":"/library/settings"},"durationMs":3123.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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"}
{"data":{"method":"GET","status":200,"url":"/library/new-arrivals?limit=10"},"durationMs":4987.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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"}
{"data":{"method":"GET","status":200,"url":"/library/my-loans"},"durationMs":5009.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":21.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7dcf65ca-2d25-4e5e-8389-3dd1b36b5745","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62","navId":"1789503164898-229938","text":"KigogoPauline keya1 available"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/library","href":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62","navId":"1789503164898-229938","text":"KigogoPauline keya1 available","to":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62"},"durationMs":80,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/library","navId":"1789503164898-229938","to":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62"},"durationMs":105,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.77,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9fe249d-1431-4552-bf3c-dcfaaab96f79","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"ecf92433-277a-40b7-aa3e-ca0661ea7361","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:12:51","userId":null}
{"durationMs":46.73,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"200e6929-02f4-495a-b383-ca0025fb083a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:12:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Go Back","name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62","href":null,"navId":null,"text":null,"to":"/dashboard/library"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/library/catalog/cmpczl0xc0003jrqn6l1ahi62","navId":null,"to":"/dashboard/library"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":719.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"99909137-02c7-43ed-8391-5067ea373940","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"170571e9-5a3f-42b0-a4f6-830eadf2a5cf","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:12:52","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":74,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:12: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"78644247-6e14-4954-ad61-21386cf5774b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:12:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:13:00"}
{"data":{"href":"/dashboard/inventory","navId":"1789503175365-313917","text":"Inventory"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cbece810-4872-43ab-8e66-479bb1e42810","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":252.18,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"332c25b1-9482-46ad-9525-24dd4f111181","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":250.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?limit=5&sortBy=createdAt&sortOrder=DESC&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"a31550a5-1a88-4390-b820-7212a6d550a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":244.13,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/transactions?limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"1902dc89-5bd9-44ca-8fb9-1e459a3db131","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?lowStock=true&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"ab35b5de-9e98-4bb4-9152-c391dd6cf693","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?limit=10000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"3df1952c-5fc6-4e23-ae43-6c141196dc76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/departments?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"6d12cc56-3489-4252-b060-19d3386241d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/library","href":"/dashboard/inventory","navId":"1789503175365-313917","text":"Inventory","to":"/dashboard/inventory"},"durationMs":852,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/library","navId":"1789503175365-313917","to":"/dashboard/inventory"},"durationMs":852,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/library","navId":"1789503175365-313917","to":"/dashboard/inventory"},"durationMs":903,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Items","name":null,"type":null},"durationMs":111,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/stats"},"durationMs":1359.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":1361.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/transactions"},"durationMs":1362.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":1502.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":1723.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/departments"},"durationMs":516.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25d77399-750d-4143-9a09-50be0d6a0d7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Stock Level","name":null,"type":null},"durationMs":130,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":29.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1393690c-c1c8-4df6-bfed-8311c5337179","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":80.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/suppliers?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"8c7f3e0d-0808-4528-a79b-61231f8f82bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Suppliers","name":null,"type":null},"durationMs":85,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/suppliers"},"durationMs":482.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.15,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e6d4bc57-0f6d-4cc2-910e-d4037afa9e52","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?page=1&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"fdfdfc3c-888c-4197-a7bc-883b02ed4565","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.72,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/suppliers?limit=1000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"0f683268-72fc-4959-a1cf-3e4b644c0fdd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Purchase Orders","name":null,"type":null},"durationMs":100,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":408.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/suppliers"},"durationMs":699.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.27,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"253c5211-398b-42ff-9786-281ebcc412f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":407.35,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/grn/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"521101c3-eace-4672-a075-aa62cfde0f4a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":418.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/grn?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"9817d8dd-b0b7-43a6-8933-d7622d2c1f82","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/grn/pending?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"05b32647-9cae-4b31-9319-2c6adb1c5cbd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?status=APPROVED,SENT,PARTIAL&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"d86342a1-10f1-4d05-bba6-f627ae723f7e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Goods Received","name":null,"type":null},"durationMs":48,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fa2fd1f2-e0ac-4e54-a7b7-53a63580a7c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":465.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/invoices?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"60c475f0-6d55-4cd4-8158-0ecaa44d60ab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":146.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/invoices/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"2be956b7-a096-44f6-8f50-ba94cc0131db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"f96b560e-bd09-4498-bdfd-94afd3fb0eb3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/suppliers?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"06d853d4-bfe0-4568-ae73-3585132fbb5a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:13:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"da5a5b3f-0288-4245-88dd-17f2fc863a07","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:13:12","userId":null}
{"data":{"method":"GET","status":200,"url":"/inventory/grn/stats"},"durationMs":1080.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/grn?schoolId=cmp8gtb7j00008bcnd6vyf567"},"durationMs":1089.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/grn/pending"},"durationMs":1418.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders?status=APPROVED,SENT,PARTIAL"},"durationMs":1433.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Invoices","name":null,"type":null},"durationMs":50,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1a94210d-6247-4d33-8fbc-cd0ee0f5373f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/invoices?schoolId=cmp8gtb7j00008bcnd6vyf567"},"durationMs":1878.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":66,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/invoices/stats"},"durationMs":2277.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":2464.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/suppliers"},"durationMs":2886.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2010cf5c-4787-4b18-92b4-959d871af003","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/transport","navId":"1789503190895-939821","text":"Transport"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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"}
{"data":{"from":"/dashboard/inventory","href":"/dashboard/transport","navId":"1789503190895-939821","text":"Transport","to":"/dashboard/transport"},"durationMs":551,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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"}
{"data":{"from":"/dashboard/inventory","navId":"1789503190895-939821","to":"/dashboard/transport"},"durationMs":551,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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"}
{"data":{"from":"/dashboard/inventory","navId":"1789503190895-939821","to":"/dashboard/transport"},"durationMs":563,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":11.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"759483e9-bf75-46dc-b275-b034c509d44c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":444.56,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/dashboard","requestId":"fcb1ca01-ebd9-4156-b29c-7770b2898c94","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/transport/dashboard"},"durationMs":1095.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"161aecfd-295e-41b9-bd62-6f6e833f85ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":232.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?page=1&limit=20","requestId":"7a77a538-b863-49c3-bba9-2883ea5d9652","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Vehicles","name":null,"type":null},"durationMs":109,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/transport/vehicles"},"durationMs":665.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ae2dfee-1fa5-4e1b-a63a-4b514e6ad1ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.22,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/routes?page=1&limit=20","requestId":"8b2f3924-9f19-4b36-bf9c-4cf5e1fb5ca2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Routes","name":null,"type":null},"durationMs":27,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13:21","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":"/transport/routes"},"durationMs":576.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13:21","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.47,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7c046825-1532-4c61-8b6d-5852e34fd488","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":316.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/fuel-report?startDate=2026-09-01&endDate=2026-09-15","requestId":"d1c2f889-70ba-41c3-bd23-485e2d353c62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?limit=100","requestId":"71c1b9bc-fc42-4183-85cb-8bcf0744f30f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/settings/school","requestId":"7185372d-4f51-467f-a2ea-5c743b19d244","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Reports","name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/transport/fuel-report?startDate=2026-09-01&endDate=2026-09-15"},"durationMs":685.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8fa89f4-02fe-4cf1-aafd-549b5b1be4d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":5.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"26fbc875-8a16-4ab5-b2d7-9d74bb31a303","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:13:25","userId":null}
{"data":{"method":"GET","status":200,"url":"/transport/vehicles?limit=100"},"durationMs":860.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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"}
{"data":{"method":"GET","status":200,"url":"/settings/school"},"durationMs":1067.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":67,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":11.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"12c7f022-4867-43d0-85d7-fb600ad2815f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/stats","requestId":"017d3691-474d-4fef-b44a-f0f9a475a69d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":113.56,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/records?limit=100","requestId":"a6f60cc0-d8c9-4132-8bc2-f536cb6e660b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.88,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/vitals?limit=50","requestId":"549c5d4f-32d9-42bb-92f2-4ef0d2708568","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/health","navId":"1789503203168-92512","text":"Health"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":{"from":"/dashboard/transport","href":"/dashboard/health","navId":"1789503203168-92512","text":"Health","to":"/dashboard/health"},"durationMs":87,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/health","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":{"from":"/dashboard/transport","navId":"1789503203168-92512","to":"/dashboard/health"},"durationMs":142,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/health","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":{"from":"/dashboard/health","href":null,"navId":null,"text":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":{"from":"/dashboard/health","navId":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":17.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"15aa3af0-24ec-479b-9807-57c2862d5efd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/stats"},"durationMs":385.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/records?limit=100"},"durationMs":2326.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/health/vitals?limit=50"},"durationMs":2563.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.78,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2e726911-6937-47f0-9855-bda10721aaff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":3.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"34eb633e-5e1a-4a5b-ba8c-f743804f2016","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:13:33","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":90,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.19,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de64ccda-a461-4f57-83d4-44a3a2f8091b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/meals/plans","requestId":"2c3ccefe-6843-4ff7-b931-2e5f3ade8722","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.78,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"f346f58d-fcf7-4a58-92d8-20eda715b90f","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:13:43","userId":null}
{"durationMs":99.6,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/meals/dashboard","requestId":"8c1fad73-2bb9-4f50-9d7b-0676f0551383","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/meals","navId":"1789503212174-39021","text":"Meals"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/nurse","href":"/dashboard/meals","navId":"1789503212174-39021","text":"Meals","to":"/dashboard/meals"},"durationMs":3669,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/nurse","navId":"1789503212174-39021","to":"/dashboard/meals"},"durationMs":3669,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/nurse","navId":"1789503212174-39021","to":"/dashboard/meals"},"durationMs":3692,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.77,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"90fc9b00-26f6-493f-b768-b10284bd4213","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/items?page=1&limit=8","requestId":"61982651-3806-4bb6-830e-2e5bce485cef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/dashboard","requestId":"f32e0d7f-b0a9-461a-8fa3-bb1348ac4d64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":8.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"a3897c82-a9b8-4a50-8921-42e88d879406","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:13:47","userId":null}
{"data":{"method":"GET","status":200,"url":"/meals/plans"},"durationMs":2498.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/uniforms","navId":"1789503219102-751109","text":"Uniforms"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/meals/dashboard"},"durationMs":4076.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/meals","href":"/dashboard/uniforms","navId":"1789503219102-751109","text":"Uniforms","to":"/dashboard/uniforms"},"durationMs":1594,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/meals","navId":"1789503219102-751109","to":"/dashboard/uniforms"},"durationMs":1594,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/meals","navId":"1789503219102-751109","to":"/dashboard/uniforms"},"durationMs":1612,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"70809b17-9568-472b-bfae-751ab3a79c0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":62,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/items"},"durationMs":777.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/dashboard"},"durationMs":1472.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.78,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"67542d59-613b-4ce5-8022-7966b2053cd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"46cf94e8-577e-4e61-8619-1c1df69a0ffe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:13:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2f3502d7-e0cb-4019-9d53-5fac0b06b947","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:13:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2205.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e34a2aa-585a-45cf-95a5-295461d35b64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":5.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/v1/certificates/stats","requestId":"f3f96e8f-aa9c-488c-aa95-cdd3dbb0e5af","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-15 23:13:57","userId":null}
{"durationMs":2.4,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/api/v1/certificates","requestId":"9dfb4064-7186-4eff-95d0-c092ec62116e","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-15 23:13:57","userId":null}
{"durationMs":3.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"248c70c3-8586-48a4-91ad-6191308a05d9","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:14:00","userId":null}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":3006.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/certificates","navId":"1789503231154-911267","text":"Certificates"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/uniforms","href":"/dashboard/certificates","navId":"1789503231154-911267","text":"Certificates","to":"/dashboard/certificates"},"durationMs":708,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/uniforms","navId":"1789503231154-911267","to":"/dashboard/certificates"},"durationMs":708,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/uniforms","navId":"1789503231154-911267","to":"/dashboard/certificates"},"durationMs":723,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6d2189bb-aee1-4fd4-8ba8-e882ec8f1540","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:14:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:14:00"}
{"data":{"method":"GET","status":404,"url":"/api/v1/certificates/stats"},"durationMs":2323.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":404,"url":"/api/v1/certificates"},"durationMs":2328.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":65,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3c06059d-c7b3-482b-85be-e3a98df6bb3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:14:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/billing","navId":"1789503240420-451942","text":"Plan & Billing"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/certificates","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"54511f0a-b2c5-4d4f-89ce-3bdcc3bcfdf8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:14:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"440559ac-c0f0-41e2-b576-3cfbbccf8975","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:14:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/certificates","href":"/dashboard/billing","navId":"1789503240420-451942","text":"Plan & Billing","to":"/dashboard/billing"},"durationMs":975,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/certificates","navId":"1789503240420-451942","to":"/dashboard/billing"},"durationMs":975,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/certificates","navId":"1789503240420-451942","to":"/dashboard/billing"},"durationMs":998,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/billing","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc264b2f-d976-45b7-828d-3e23ca0a4e54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:14:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":3242.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:14: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"760d0959-6160-43a8-9186-acd95df74b07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:14:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:15:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b878f6a3-cd91-4bc7-b755-667b2671dbc0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:02","userId":null}
{"durationMs":107.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"12a03507-ab9c-47d6-8e2f-3a06a97bc3e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:15:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.13,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"1645e4b2-9f0a-4d20-bcc8-1fe7287646bd","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:15:49","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":61,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:15: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9a5b2d17-17cb-44ab-b003-d40bb3e65260","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":439.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b6e230e5-b952-4469-9039-83687fb23372","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:15:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":455.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"c892f78d-77d6-432b-91ec-488ec41ce6b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:15:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":453.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"ee72c37e-595a-4681-8475-855045fd4c01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"436fa9f1-1b06-4a85-960d-034425070a54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"36e59c06-8815-4c59-92dc-c159325f7e28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"10aee976-dae9-4ce8-97b5-bad4c5aef944","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"bc7650b7-4f44-4b4b-b867-4e887a6fe24a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"5adb7b3e-5472-48f3-9676-cd74e10adf48","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:15:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"a274d61e-f599-4487-8148-415609639e44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:15:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":20,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":81,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789503343147-54737","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","href":"/dashboard","navId":"1789503343147-54737","text":"Dashboard","to":"/dashboard"},"durationMs":126,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","navId":"1789503343147-54737","to":"/dashboard"},"durationMs":151,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":null,"url":"/communication/notifications/inbox-count"},"durationMs":30004.1,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":null,"url":"/communication/notifications/unread-count"},"durationMs":30024.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":null,"url":"/communication/notifications"},"durationMs":30025.5,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":2506.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":2526.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.27,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6df87cb8-5f25-4558-9bc6-98a21ca8af80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"68440a87-eabc-4497-b632-7fe5242a0c26","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:15:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2152dc13-c75b-4b8c-9806-a9111c6b7c9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"51f9add8-7dae-4344-b8e3-0e9b40bb050a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"8c808a95-1842-49d7-9c4f-bfbb4dcdcf3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:15:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:16:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":5277.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":5691.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":5920.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":5841,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":6775.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":6777,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":6895.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":5997.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":6048.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ea2b02c-0214-460b-8e1b-a1c3e26fdb44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:16:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":86.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"2482ff8d-037f-4212-b368-7a23a72a5158","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:16:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e45851f9-3b65-43c9-bff8-4efc7b527909","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:16:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"242f908b-e61d-4e95-b513-ea314d59cf0f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:16:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1768,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1101.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"177a91ae-3e39-4166-b986-9c207f1a2620","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:16:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1986.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:16: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.66,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d955a412-4a89-4afa-a148-881860d615a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:16:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:17:00"}
{"durationMs":89.35,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"8769acad-35e3-46c8-847f-5d94d46549fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:17:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5a697a4f-0e61-4bf2-842b-4f293c7f2fd8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:17:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"78fb0c8e-ab80-4008-bd39-816a72e750eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:17:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":836.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:17: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":990.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:17: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"270f45b0-ea6d-4fc1-b66b-b28914bf142c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:17:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":765.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-15 23:17: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.18,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9e8c414d-aa29-4152-8c40-8fc8737fb979","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:17:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:18:00"}
{"durationMs":2.44,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"23fc8e27-ef7b-476d-b17b-ea1f59743477","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:18:08","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":103,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:18: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":2.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"542e9bff-2ec2-4d06-898c-8205891e3f55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:18:15","userId":null}
{"durationMs":4.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"a4c29d32-0561-44c6-bef8-d0057d6792f5","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:18:19","userId":null}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:18:43","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":41,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:18:43","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":103,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:18:43","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":36,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:18:43","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.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"86ce2957-097b-4124-9932-c3f773c1df09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:18:43","userId":null}
{"durationMs":5.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"0516952a-1b66-4047-af70-ca16e898bbf5","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-15 23:18:43","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":96,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:18: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":{"id":null,"label":null,"name":null,"type":null},"durationMs":36,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-15 23:18: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":2.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"55a1fc6d-1ed2-4bef-aac8-b9dca39aa191","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:18:45","userId":null}
{"durationMs":4.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"fa65e74c-75f9-4e1b-b2f8-cbedec41ad67","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-15 23:18:56","userId":null}
{"durationMs":3.97,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5ac66ea3-0ca4-464c-a0ab-c48c1bda5883","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-15 23:18:57","userId":null}
{"durationMs":41.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"8ee6fbf4-e179-448e-9bb9-215ffb84d3e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:18:57","userId":null}
{"durationMs":3.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0c7e267d-1873-480d-85bb-d0388f8cad00","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-15 23:19:00","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:20:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"246c1daf-f2b6-4f68-8ab2-0dfc7d7b5c5a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:20:02","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":38,"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-15 23:20: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}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":51,"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-15 23:20: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":1.73,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1f583d5b-08fe-4fc5-962e-97d7d983b903","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:20:06","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:21:00"}
{"data":{"id":null,"label":"Sign In","name":null,"type":"button"},"durationMs":27,"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-15 23:21: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":0.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"797b4719-1c58-4feb-856a-00bbd6496318","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:21:17","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":35,"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-15 23:21: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":null}
{"durationMs":1.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e0a3d738-3340-4541-bbf5-9b0ca04243a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:21:25","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:25:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a29bdfa-b22d-4c00-81cd-efcea5a90a6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:30:00","totalConnections":1}
{"durationMs":2.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"813f9c37-cf45-402a-88ed-03bfc18a6daa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:32:00"}
{"durationMs":3.43,"ip":"202.78.167.217","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/checkCleanIp","requestId":"ec36c5c1-d7ff-463f-b75a-7798865ea0aa","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-15 23:32:55","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:35:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a87316ef-86f6-4010-8cbd-d64c45d6becf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:40:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5333af0-2142-42bc-81fe-9d490d58a13e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:45:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0762187-c3c3-48fa-b101-0f4ba67940e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b95bcd3-11a4-477d-8e11-d6cd0e22c39a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-15 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-15 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-15 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-15 23:55:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"666e1dee-070e-4edc-b019-b3d3a98a5a79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-15 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-15 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:00:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9b09129-c470-4977-b854-2717a5c7df9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:05:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"881e9776-5e24-42b4-85f9-16c14bcd79f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:10:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b851230a-5996-4198-9979-e1585bc2bf9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:15:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6aa85e48-f05a-4977-b09f-f9a664a0dc9c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:20:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0dafa91d-4380-420f-b6f4-2da7b493e148","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:25:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5718cde-9269-4788-b9d8-81e5d7d14304","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:30:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ed700b2-962c-470b-bb0d-3291afebb8bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:35:00","totalConnections":1}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94867a3a-6fe8-43c8-84ff-f85eabab4f12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:40:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"def0312f-a473-4aed-a4ae-f692d8923cbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:45:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4983b86f-ad63-4f6c-a361-0e23b5812033","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:50:00","totalConnections":1}
{"durationMs":2.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd0af837-a67e-4ddc-96b4-40f10f3a8300","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 00:55:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6bf06e5a-f3d1-4609-bf85-72cf989d54dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:00:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb925274-7269-4836-ad4e-cde2dbcaa3ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:05:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ddaae3a-23cf-4e99-8258-a7637e6cccdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:10:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f9ef964-1cc4-4dd3-bec6-46051bbf0416","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:15:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"007a7c6e-fd46-4ce0-825d-b9dbdb8ffaf4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:20:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a11fe922-30c9-40c7-80c1-7b0c3d89df66","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:25:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1833aac0-bdbb-4a59-8114-3b19273d53da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:30:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41a29e1d-5557-49a8-b25b-48501335873f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae96bf18-75a6-48e5-ac1d-7a75e6958e75","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:40:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08eef41f-1243-4157-84a9-e31d3b0e499b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:45:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85065c2a-a6f6-4faa-a5d6-267c98fb9ab5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:50:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4fd7343-c9d2-4a0b-b8b9-b09a74f09ba1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 01:55:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"659ca0c7-bce5-4cd5-9c52-e1ca736d9f8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:00:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"782f908e-a685-419c-a376-73404c3468a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:05:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"116c3e82-b9f7-46d1-946e-398017bd3095","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:10:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84316880-755d-44c9-bb0a-7c90410ef4ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:10:04","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:15:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f97ea8b8-0a5e-4dd7-837f-955c1daa1615","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:20:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0ba44ed-4116-4822-8e4a-4edac0d9893b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:25:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f320689c-7bf3-4860-a5ad-2f0875bdebaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:30:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2afc7be1-545c-408c-b857-bf6539ccb389","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:35:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fab8be36-edef-4995-850d-192cbb60544d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:40:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f00b5fcf-549c-4039-a857-2b4654c6865f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"37cdeee6-e3f9-430a-9690-089e4600074b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:50:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa3e7a5f-8602-4cad-a02c-cfeba4b0dcce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 02:55:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1974477-075d-4e61-8b4b-a4cc4889cbeb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 02:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:00:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d464ec91-79d0-42a5-94a0-9096a80a6f77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:05:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9f2cb62-dc96-4305-aa02-d199343493ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:10:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7d80de5-3b02-4d27-8567-44b049fba0f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:10:01","userId":null}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:10:02"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:10:02","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3be296e-c4df-4fd7-bd29-fec5c785c0fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:20:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1e40499-cf92-4658-a7f9-72122459a3c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:25:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c220122-b0a4-4ebb-aaa8-69a5029cb7bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:30:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cad7993e-f0b6-49f3-aa0a-e8740f295393","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:35:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bd0c5a8-6862-4182-b7bf-5d9220abb59f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:38:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:40:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"862020c8-1b4e-4117-ae03-43a9f4649d46","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:45:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c3bad96f-6e91-4415-9ba3-c772a435d358","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:50:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00638063-aaa9-412f-a41f-363ba787d682","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 03:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4963b80-f55a-4a9a-a76d-9c060b1c106e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 03:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:00:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8f4f0e0-1bf7-4305-8e74-f98870c83991","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:05:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"daad59f4-fa60-49e5-9a06-e3fdbc1bbf5a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:10:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c23d09e3-0770-468e-a84a-af4730be210d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:15:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d5be9b5-d4a1-4d44-9cec-672890ff93cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:20:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2cbcced9-c938-4a8c-976d-5ca5198f3d9c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:25:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b155c054-ba86-4f1a-915f-08f86cc189e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:30:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83beb200-d94b-48d5-8457-aa60216f9333","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:35:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd124b9c-c342-4b30-b5b9-2353607c8dc6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:40:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5a33f27-76ce-4ec9-8829-15087b99ddae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:45:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e15d7f5e-f0cb-4fa5-a319-35971859a5b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:50:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09703e84-f81d-4e9a-ba86-a12581bcc8ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 04:55:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9cfef821-e8fb-4be9-ae7d-fbd5977e2558","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:00:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5536fb6-e603-40be-a073-62a16da2fef2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:05:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4dbbe8c-e896-406c-b04f-c370b39456ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:10:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39b27663-71af-4430-bc0e-426720f570fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:15:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c58660de-a3d8-40ab-a60a-4eff1ac93419","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:20:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff263cd1-00bb-4054-bb07-5f5184ec6cca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:25:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9fe6121-c05c-4aa7-bb76-59d19b47c787","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:30:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50e0ae0f-a42f-4356-b98a-c5b218850c35","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:35:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"833752cf-2de3-4c0f-9672-b9bb059dc214","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5081bae-cccb-48bd-8bc6-e3825475ffbc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:45:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56319ce5-08eb-4236-a589-60d4065404c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:50:00","totalConnections":1}
{"durationMs":1.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e29235ff-e66a-4867-9e82-fc5eca02a693","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 05:55:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d8fd56b-2454-4ff9-a79e-b6cc022c05be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:00:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4e21bc0-7112-4b4b-a7e8-c5f9c81795ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:05:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:05:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:05:01","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4cf2bd6e-0ebd-43c1-ad30-e15c9c802f1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:10:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"225334f4-9e2c-4653-865d-396cd3bafeec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:15:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d4b4cfa-20a7-4b91-b067-8e4809ee13ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:20:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d3c82e2-de10-482c-b3db-d997deb6dd7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:25:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2a30b7f-2724-48f0-9946-93c09db0b96f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:27:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:30:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e16a1fe2-e613-4f57-a61b-e8092bec424b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:35:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"daa58eeb-b5bf-4713-bb0d-21e2cc3e28e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:40:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbac9352-1310-4088-b9c3-2e94987a5bd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72473bb2-7004-4112-b738-3e58eaa6af81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:50:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3ae5955-0965-4095-8eda-ab3e182f8493","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 06:55:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a2a20c02-91e1-431c-8287-0ef95fd631ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:00:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71de3d88-51a0-4f25-9bcc-1d6eeefbfa60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:05:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d786be69-709b-4022-98ca-4c01e1f1f1f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:10:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3bd96549-5924-47ed-a1b5-800a08a9da49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:15:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30462191-1a1b-4d11-bf06-b3cbb3755667","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:20:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93857640-6a66-439f-95c0-073fcc4c401d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:25:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"063d6b25-fcb6-4d5e-9f2a-e9070e3d402d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:30:00","totalConnections":1}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09a4d365-8ae0-4225-aa80-0a119fe1402c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:35:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d78b16f-c904-4fe1-abcc-7a1d80a1000c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"426f6e00-41d9-464e-9c56-ac842e283943","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"664c0043-18e7-4936-bc41-72fffa5588aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:50:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccca43b8-a2fe-4556-8bda-f7a584cb6c8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 07:55:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2dc914b3-62e5-4e89-9148-43f89d046f55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 07:59:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-16T05:00:00.490Z","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-16 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-16 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 trial tenants","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b01044-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b21c8a-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"warn","message":"[Subscription Job] Could not render invoice PDF for invoice 96b1253a-9bd0-11f1-a336-0250f227b463:","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-16 08:00:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1ccd1eb-58ac-463e-b105-9bc2d094edda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:05:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dcc5ec5a-8011-452b-91ba-53363fea0a39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:10:00","totalConnections":1}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58b3cd09-8ee2-4aea-9414-38658f13020b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:15:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:15:01","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71d5d5bc-1fd4-46b0-a8cc-805d1640d4a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:20:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5172c4a-759c-46c0-8d58-58902e70f7c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:25:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"490892f4-7950-46cf-884f-4f97f3989054","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:30:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cea08513-f255-4507-84a2-d1459ccbbafd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:35:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"216da92f-0d40-4bc3-8f5d-9cf9642b5aaa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:40:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09974107-fcfe-43d2-a26a-972792cbf90f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:45:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d140a7e-514b-45ab-986d-f5b73f8eaaec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:50:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87fb2b6d-8bd0-401e-a2e1-93b59b2dfaef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 08:55:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"979efe59-cdd3-48bc-92ce-d05d233499b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 08:59:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:00:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b54150e-c9b1-40a0-9840-67cc7d4eff5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:05:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0eb764de-8e4f-4be5-ab87-8cd2d70d6bbe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:10:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aedc3529-25f1-4c5a-a7d9-ed012d3345ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:15:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df069220-a500-4987-884b-a185a1664e4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:20:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"766ca0bd-709e-4815-8998-f2b6a92f327c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:25:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5a6ab65-991c-4adc-b501-0b4bac47af39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:26:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:29:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-16 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-16 09:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:30:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ffee51b6-f855-4e2e-8f66-257c261afcb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:35:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bc32565-52ec-441b-8bac-a3c5d00603b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:40:00","totalConnections":1}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e66660ee-26c2-429d-82c4-4e90417b2815","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:45:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed875982-2ab0-4e43-a8c0-463f1f308b22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:50:00","totalConnections":1}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1bbb587-0de8-4fd1-83ee-8afc05ecb81e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 09:55:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a19c1404-9fea-4250-8431-7c5af2237b69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:00:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba04062a-db32-4bfa-a933-cd74c3fe7b1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:05:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"776d7328-33f1-45e1-ab5c-58638692e7a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:10:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ac0ea08-a710-4612-b1bb-09b6ebc727d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:15:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cffcec71-4643-4184-8e89-89a212f500de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:20:00","totalConnections":1}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c23b9f9-b691-44bc-8347-ca5a0e368c32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:25:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cea2f2d2-7fc7-4bf5-9fc0-42a645d9e165","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:30:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0edf644b-7785-4854-a678-c5ec3b71fae3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:02","userId":null}
{"durationMs":1.36,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4556b566-fc1d-4716-a82b-0ab2b446f8c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:06","userId":null}
{"durationMs":2.1,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"69ecd003-8486-4504-a07e-a7ff2f638e6c","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":2.49,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"457948ad-c608-448b-9dc7-9f59a2d320df","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":3.81,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e1fe3ba5-ca38-4671-bd66-1e9e966b3716","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":2.15,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f3da0de7-66e8-4127-8843-6229a3889b02","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":2.1,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0215fbdd-08d4-4e2d-99aa-848d7f29ef23","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":3.29,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"6f392232-28c7-4f9a-aa8d-936d45314152","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":4.23,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"812124be-c619-4730-bce4-4dce88ab35d3","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":2.27,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"e4b360b0-6cfc-4494-ba8b-e4aea19b2fbe","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":1.86,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"5d310f8c-f61f-4e88-80c2-c96ced3c9a20","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":1.83,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"7b90fa5d-007a-4cba-a31f-726e9678060f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":6.94,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"1537ff30-782c-4420-b5d7-4eb6505b66ca","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":7.13,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"2e1f9f8f-a975-4105-abb0-89e4f764c092","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":7.57,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"e168e7bd-72a4-4688-bb30-fa06ee7df550","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":8.03,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"3c7fd80a-3eee-4b33-a0e4-1c5f4f7adc48","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:30:07","userId":null}
{"durationMs":36.94,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"273a670b-fb26-4699-a0c3-5ee9a12ecd81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:08","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":390.2,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":401.8,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":406.2,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":407.2,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":409.6,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":412.5,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":414.5,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":416.6,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:30:08","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":null}
{"durationMs":2.39,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e9f71c6b-33e2-4109-89aa-2b0b75e59c43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:08","userId":null}
{"durationMs":688.45,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0e2016e3-89f0-4502-aeb9-1ed08f711487","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":615.55,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"3129c275-3569-4b75-829d-7fe1aaa3c1ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":554.4,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:09","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":672,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:09","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":676.6,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:09","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":680.2,"event":"API_ERROR","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:09","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.55,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e6ee372-56e4-4fe7-aec0-4641f39e6c01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":702.33,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"562b2a87-2d3e-44f0-9d8d-8eedcce03cb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":889.5,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"49b3411f-14d8-40ea-9506-f0a652864a68","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":918.15,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"52b1e5c2-9c9c-4e61-af5e-f79974bd41c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":911.22,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"b27a9050-b45f-4634-ba7f-5f6736626e07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":718.64,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"92bb0ec0-06f1-48b6-94cb-0e42a7e11e49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":855.33,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"064691be-3dde-41ce-8621-c13a6a4a8a8e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":877.96,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"9d767622-2e81-427d-b81e-33b52c0954fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":931.56,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"42b4ee6a-9eaa-46a4-a99c-a3b95b4e61f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":922.46,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"714f11bb-df60-4c3f-bcb7-20129c4b6d8f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":922.19,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"e0986efd-c7a7-44d0-bbdc-45eb2428c72b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1034.9,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1060.3,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1212.4,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1249.8,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1277.7,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1280.6,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1282.4,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1754.4,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1760.9,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1763.9,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1766.5,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1940,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:12","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.16,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b700dc85-2f63-4af1-ac17-c07e6038f9dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.95,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c049b632-f90e-4ada-94cd-c9e683b667ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:42","userId":null}
{"durationMs":3.48,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"7facd2ad-df9b-46b8-9b68-242f4fe5e655","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:42","userId":null}
{"durationMs":2.89,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"2da851c2-9b76-419c-b533-8e76f62399e8","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:43","userId":null}
{"durationMs":265.72,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"77f3002c-04ef-4a3e-b73a-5348f920b5d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":264.36,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"fdad6c69-0b7a-4b10-81ad-f468fd493d2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":710.31,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"b52bf516-51d5-4f03-a6c1-6e61e77fc472","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":766.23,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"f511335a-3cb3-4c34-be4a-5de22c6ffe50","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":781.47,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ae3c53b5-624d-4ece-9fd5-8def9a28db42","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":800,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a8304e38-1efb-455e-a163-3ee16a50ec64","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":785.27,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"257aaa48-c465-4816-9202-0d63de3bc96f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":634.58,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"22abe8d0-3c25-4c67-b5a1-3fbe8a40b1ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":664.34,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"e22f5f5a-db65-4bd7-9a3b-6910b5a0196e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":804.03,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"32f4c99f-43d9-4e14-863b-827c92ae6c7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":812.25,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"eeb659c4-3242-4a72-8a1d-98ebb84e261f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":797.73,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"6643f077-f879-4882-9d55-3cc707b2aff7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":648.5,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":807.2,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1143.1,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1152,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1191.1,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1235.1,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1235.6,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1234.8,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1250.5,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1259,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1262.5,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1264.4,"event":"API_RESPONSE","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:44","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.64,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"82ad71c6-3b50-4433-988b-9c4297d96e5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789543840423-389862","text":null},"durationMs":null,"event":"NAV_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:30:45","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.39,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"daa0b017-165f-4143-accd-45091c432194","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:30:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:31:00"}
{"durationMs":2.32,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"941a42e5-b61c-4167-beae-30ecb981be83","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:31:04","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":198,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:31:10","userAgent":"Mozilla/5.0 (Linux; Android 16; Redmi 14C Build/BP2A.250605.031.A3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.7049.79 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.60.0-gn","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.27,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0bb5d71b-05bb-47ee-afd3-59b98a684b1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:31:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff4e32e8-9cb9-4cfb-9aa4-1f593fca65b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:37:00"}
{"durationMs":1.04,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"57d1aecf-4a09-45f3-afbf-0d05b8920471","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:37:37","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:38:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":25,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10: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":null}
{"durationMs":1.07,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"57248913-a3b6-4703-965e-73ca654cf97c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:38:01","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":22,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:38: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":null}
{"durationMs":1.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"284aafe0-605c-4488-9cb9-da3696770af1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:38:03","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:38: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":null}
{"durationMs":2.03,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8540f2e-ca9b-41f7-9771-c04f193b9483","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:38:05","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":15,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:38: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":2.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c588574-7672-464a-9f07-c197f95cfa16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:38:06","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":18,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:38: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":null}
{"durationMs":2.05,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4fd369c9-9a97-4870-aae1-3e13151bd0ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:38:07","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:38: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":2.06,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f9ca81b2-7e07-4f17-aa93-bfa5ae6974a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:38:08","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":20,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:38: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.2,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85023bd9-c6f4-4b3d-9af9-4426237d88cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:38:10","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":12,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:38: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":2.63,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc257581-b5c9-4285-97b2-56d4253fa35f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:38:11","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:39:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":17,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:39: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":2.17,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d84b2b8b-986a-4c3a-9eba-9848e660c5ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:08","userId":null}
{"durationMs":826.48,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"286dd877-d2c6-41cf-868a-78a46ba8598f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:14","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":20,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:39: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":null}
{"durationMs":1.25,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a48484a5-56bc-4bdf-a6e7-85d6d32a8cd2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:14","userId":null}
{"durationMs":44.98,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"913934a6-11bc-4519-ba9c-65dc90bb8b24","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:14","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":43.08,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b37c93ce-ce23-4bbb-960e-2efeff9c92b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:15","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":41.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"4430ce38-7a67-4a67-9034-7f5d8d62b595","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:15","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":66.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"b9fdc330-96f0-4b67-b2d5-7332630b9f5e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:15","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":44.3,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"e432c96e-0317-4902-b8e2-290401405481","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:15","userId":null}
{"durationMs":66.3,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"a9514338-4b6e-442e-8f4f-dd3f62f970c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:15","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1194.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":546.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":14.72,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee29a337-5ad0-46c5-8e8f-fe7b97453b5b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:15","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":89.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"d66551a0-2da6-4e33-802e-4f1bfa03133a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:15","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":194.14,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"5095fd37-0fa4-4005-89c2-7e9f3b31a80b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:16","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":406.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":421.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":454.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":456.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":9.54,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2b86ac57-2b32-452d-aa07-f195869bef8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:16","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":34.84,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"ab72eecb-e367-477e-ab29-49c2ea132962","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:39:17","userId":null}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":617.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":681.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":14.6,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"34b6a997-0509-444b-b816-3553e7c6cf3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:17","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":70.29,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"36e59cbd-fdb4-4d78-bc52-992cef7e54b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:17","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":96.28,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"52f37ea8-ab75-43ff-9e9b-4dd18315d71f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:17","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":129.32,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a2efe72a-4f5d-4c3b-bf32-9f16a75f824d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:17","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":156.45,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8c0fd6e6-3096-4398-b6d1-11da5e4458dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:17","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":170.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"35dce4ac-db96-4333-9135-433b54cf4536","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:17","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1663.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1680.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1765.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1777.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":1778.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:39: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":12.6,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3b50ebf-26a5-4b41-b964-69ca54053792","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:39:19","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:40:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b71ecbbb-21d7-469e-a2b9-9824b2820ff4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:40:01","userId":null}
{"data":{"href":"/guardian","navId":"1789544363032-740035","text":"Home Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":32.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"00580909-aea1-4ae7-b679-93aefa1a6cbc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:40:04","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":1.76,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"464ac353-c58c-422b-816c-d93bc5c26cef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:40:57","userId":null}
{"durationMs":4.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"35b26009-62dd-43ea-ac41-16daf2fb8379","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:40:57","userId":null}
{"durationMs":34.08,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0f74bdd1-3cdf-4b13-a441-3dee3a6116b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:40:57","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":59.53,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e4d3f844-1e1d-4f07-b323-f12295c5149c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:40:57","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":45.47,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"64f2d468-b97d-428b-b75c-ecb860146a70","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:40:57","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":60.33,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"43ffe26d-9094-436c-aaeb-cce50aa37cef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:40:57","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":192.71,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"0e095743-a6a8-4e31-bb84-943e64486caa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:40:58","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":201.63,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"b315c9af-e41c-4dcb-852a-04a53346e8d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:40:58","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":219.87,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"8012c81c-0c59-40f6-bfd8-5d58a74973b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:40:58","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":418.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":509.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":512.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":518.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":7.72,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7176e849-6ea0-43ee-87d6-6fe613c90748","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:40:58","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":543.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":749.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":648.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:40: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":9.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"327af8be-753f-4207-84a2-f0fe29c684e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:40:59","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:41:00"}
{"durationMs":52.94,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"ed13c111-b7de-4ce2-87e5-b0e293860158","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:41:11","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"href":"/guardian/students","navId":"1789544430428-704965","text":"My Children"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:41: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","href":"/guardian/students","navId":"1789544430428-704965","text":"My Children","to":"/guardian/students"},"durationMs":574,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:41: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","navId":"1789544430428-704965","to":"/guardian/students"},"durationMs":574,"event":"NAV_STALL","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:41: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","navId":"1789544430428-704965","to":"/guardian/students"},"durationMs":586,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:41: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":11.11,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7cb6ccbf-a061-4f76-b86c-772e83f61af0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:41:11","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":395,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:41: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":12.21,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eb4f9e1f-38e7-4482-b5bf-e09b50f39986","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:41:12","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"href":"/guardian","navId":"1789544444806-287750","text":"Home Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:41: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian/students","href":"/guardian","navId":"1789544444806-287750","text":"Home Dashboard","to":"/guardian"},"durationMs":150,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:41: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian/students","navId":"1789544444806-287750","to":"/guardian"},"durationMs":177,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:41: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":31.86,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7e51f517-ba13-438f-a7f6-0e5345d58858","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:41:26","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":72.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/profile","requestId":"4d2c3f7d-15e3-48f5-876e-d5ff317b0605","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:41:39","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"href":"/guardian/profile","navId":"1789544457953-377588","text":"My Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","href":"/guardian/profile","navId":"1789544457953-377588","text":"My Profile","to":"/guardian/profile"},"durationMs":502,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","navId":"1789544457953-377588","to":"/guardian/profile"},"durationMs":502,"event":"NAV_STALL","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","navId":"1789544457953-377588","to":"/guardian/profile"},"durationMs":533,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/profile","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":7.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"10adfd51-96c7-4352-a22b-2244587fddc2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:41:39","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/profile"},"durationMs":412.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":8.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a4eb5899-fcb5-4e70-bdf1-4990678185e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:41:40","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"id":null,"label":"Sign Out","name":null,"type":null},"durationMs":77,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/profile","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:41: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":null}
{"data":{"from":"/guardian/profile","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:41: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":null}
{"data":{"from":"/guardian/profile","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:41: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":null}
{"durationMs":1.72,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9ce77e5-a638-4b7f-8032-47d1c4b71334","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:41:54","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:42:00"}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":38,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:42: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":null}
{"durationMs":3.26,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"086911d0-039b-47a6-ab52-acccd9c7488d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:42:52","userId":null}
{"durationMs":783.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"9ac3ce2d-7d78-4140-bf8a-46fc80237cf2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:42:52","userId":null}
{"durationMs":113.55,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"ec43b90e-4633-46aa-88df-b20edb5a4145","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:42:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":193.11,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ee8764b7-31fc-48b7-81be-3026170eb2d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1187.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:42: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":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:42: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":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:42: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":13.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1319d229-28c6-4055-8021-7b09b537c03d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":340.21,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4ab2373a-3519-433d-b917-7df4ceb07bfb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":417.82,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a9022f6a-2ad6-4e82-b80a-efc7a0640afb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":413.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f7425d67-1e79-421a-914e-05455d654b98","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:42:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.19,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"0b0ba8f5-1bb1-4bd2-8079-b76c57732501","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:42:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.68,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"e24ee881-0f39-4de2-811f-e5a60600625f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:42:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.14,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"451482cd-b025-4f2b-8da1-0862d72d8134","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:42:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":129.07,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"6d702fb4-2ff1-4b7d-b353-69738f989623","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:42:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":6.75,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"dce92bdc-9e3d-4ca7-8bdc-b49a8c7b542a","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:43:00","userId":null}
{"durationMs":50.46,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"9b768124-7d75-425a-8c9a-874f70cece39","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.18,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"41d334c6-fbfa-48e0-943f-8cb5a35cdc56","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:43:00"}
{"durationMs":79.11,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"c79b21fd-dadf-49cb-bf7e-a9ce5cb1b3ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"369d8a57-b32d-483d-981e-ebb1803bc03e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.91,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"d72f4803-d3ca-4dce-9caf-285cdb79e80e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.39,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"df814ff1-2011-4afd-82a8-50a6169c6386","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.7,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"e0971b79-5d30-45ea-b8a3-53afb2e81217","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.12,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"239921b0-047b-4feb-a342-08d8f3b51017","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.62,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"9111c07c-10f5-41b4-9640-059758b8287d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":3783.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/school/enabled-modules"},"durationMs":3705,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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"},"durationMs":3706.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":3707.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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/inbox-count"},"durationMs":3710.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"906e1b4a-b2f4-4ad1-827a-dc9f2b2ee280","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":2246.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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/streams"},"durationMs":2256,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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/grade-levels"},"durationMs":2278.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/reports/dashboard"},"durationMs":2281.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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/learning-areas"},"durationMs":4190.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/dashboard/stats"},"durationMs":4031.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/dashboard/revenue-trend"},"durationMs":4571.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/dashboard/attendance-trend"},"durationMs":4838.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/dashboard/grade-distribution"},"durationMs":5117.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/dashboard/recent-activities"},"durationMs":5253.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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/mpesa-config"},"durationMs":5557.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/communications/sms/settings"},"durationMs":5841.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/communications/whatsapp/status"},"durationMs":5945.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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.05,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2570bad3-9217-4195-ba01-a10bfe34e3fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789544555981-740932","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":27.96,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1ccce8f5-302a-4ad8-8024-da985e3adf01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.74,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"0e4119bb-d87d-4c78-a1b1-8d253e422e0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.32,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"cb72d101-b5ec-4dba-94b9-af7192f1ba07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"6daf1cd0-3ce5-48b2-af5a-b88b5264b39b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"a74ca322-6ca6-45ec-8cd8-ae91a599347e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1789544555981-740932","text":"Students","to":"/dashboard/students"},"durationMs":2636,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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","navId":"1789544555981-740932","to":"/dashboard/students"},"durationMs":2636,"event":"NAV_STALL","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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","navId":"1789544555981-740932","to":"/dashboard/students"},"durationMs":2729,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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.29,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ea2cf891-bb6c-49a4-bff7-e2aaee062b9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":2805.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/students"},"durationMs":3045.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/students/stats"},"durationMs":3178.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/academics/classes"},"durationMs":3405.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":18.99,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"99134586-09e1-406f-88f0-7a00a3cce127","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Student","name":null,"type":"button"},"durationMs":19,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":55.68,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7bd6098b-b3eb-412f-8e45-72fd48e3b45d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":106.38,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"efb92dea-a025-4c8d-9513-8b6094a8ade5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.48,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"7e7a6a18-007b-4cad-b02c-669057425eba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.82,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/next-admission-number","requestId":"71e12e68-1827-467f-b91a-b670c8103336","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":null,"navId":null,"text":null,"to":"/dashboard/students/new"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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/students","navId":null,"to":"/dashboard/students/new"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":25.7,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc64a392-6089-4034-847f-91812ef6810c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":3880.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":3897.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":"/students/next-admission-number"},"durationMs":3980.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:43: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":28.23,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3edb0a04-729f-4abc-9e3f-ec13b55b725b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:43:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"348c2318-ac83-4424-992f-7ce6c56c5960","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:44:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:44:00"}
{"durationMs":61.7,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6ddd2e26-92a8-468d-9914-8c3724554eb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:44:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":4533.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:44: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/inbox-count"},"durationMs":5161.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:44: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":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"abcbc486-e369-48bd-afae-aa762a1b3b68","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:44:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select Date of Birth","name":null,"type":"button"},"durationMs":268,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:44: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":29.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"35e1626d-55e6-4d38-bd55-5f2e13eaa1ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:44:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"2015","name":null,"type":"button"},"durationMs":56,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:44: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.67,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"589b01ca-1ea9-4946-bcc8-daedee913bf4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:44:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"6","name":"day","type":"button"},"durationMs":76,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:44: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.86,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f2124934-bfbe-4b46-bae1-c54af0c612b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:44:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Next: Academic & Guardians","name":null,"type":"button"},"durationMs":207,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:44: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":40.98,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"72127365-73b2-42cf-8e3b-18134b71fd1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:44:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:45:00","totalConnections":1}
{"durationMs":70.1,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b1529b77-acc2-40f2-b3e8-88fe72608fda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:45:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8088907d-8743-4635-8092-e5c5b4658c6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:45:02","userId":null}
{"durationMs":111.29,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d4894cf2-da66-41bb-9fe0-e086877993bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:45:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1395.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:45: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":20.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"deb899cd-8113-4a28-bdb7-a7c74faab446","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:45:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.21,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpoj00dq8bcn0szz5jea","requestId":"0a6b8e72-040a-4f42-891e-b11e391d0264","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:45:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2040.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:45: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":30.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a8fc171-9714-4419-832a-5043bb35ff38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:45:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":4026,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:45: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":20.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"048d844e-1a41-441e-9b00-63fd238b55d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:45:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Guardian","name":null,"type":"button"},"durationMs":40,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:45: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":32.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7df11f9d-4ee9-4cde-ae86-29eb097d3f7e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:45:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:46:00"}
{"durationMs":131.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"18893fae-9c10-4c44-99c7-a010818f96b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:46:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.51,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c3deb928-180b-4ee8-806d-5c95a31b5875","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:46:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":933.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:46: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":23.07,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe26330f-4942-4616-b71d-7bc3c67dd7c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:46:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1817.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:46: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":25.13,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed3c23f3-e36e-4894-a0f0-6d9a210550c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:46:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:47:00"}
{"durationMs":3.76,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/services/meal-plans","requestId":"19e351f7-839e-4f5f-8c97-88d07c92f5cc","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-16 10:47:01","userId":null}
{"durationMs":4.14,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/services/transport-routes","requestId":"f8473637-06f2-4e12-a2a4-d65c2226b618","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-16 10:47:01","userId":null}
{"durationMs":142.95,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/fee-structures","requestId":"77e4d1fc-cdb8-4213-a407-37b87edcc25e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":155.12,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/items","requestId":"e054ca6c-8664-44aa-80e9-b79a47fd73a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Next: Services & Finalize","name":null,"type":"button"},"durationMs":164,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":404,"url":"/services/meal-plans"},"durationMs":455.8,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":404,"url":"/services/transport-routes"},"durationMs":458.2,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":"/uniforms/items"},"durationMs":647,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":"/finance/fee-structures"},"durationMs":649.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":41.01,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"21224eea-72fe-40d2-967e-05630dc6cf84","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.39,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4516b949-02dd-48f8-b386-0f805a8281e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:47:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":409,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":20.82,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a1b00c5-030b-4a5e-bb4f-82192aabadf9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.61,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"02e612d9-1ca3-4617-a163-071c57ef886c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:47:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":422.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":15.55,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee8a4286-752e-4d7b-b8b0-a3f89bc59535","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":13.29,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"72708282-52dd-4f0b-bebb-6cbdf1cc7f35","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":17.15,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fdf9bf87-22d1-4b22-8650-54ad7c757776","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2e974dc2-66aa-4cbf-b072-c69cdd29f2e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"admissionNumber":"ADM-2026-00001","birthCertificateNo":"","boardingStatus":"DAY","county":"Kakamega","currentClassId":"cmp8gtpoj00dq8bcn0szz5jea","currentStreamId":"cmp8gtps600es8bcn3r3ldlhr","dateOfBirth":"2015-01-05","firstName":"ken","gender":"MALE","guardians":[{"email":"polycarpombui56@gmail.com","firstName":"robin","isPrimary":true,"lastName":"masika","phone":"0757520334","relationship":"FATHER"}],"lastName":"ok","middleName":"wanzala","nationality":"Kenyan","nemisNumber":"","religion":"","specialNeeds":"","subCounty":"matungu"},"error":"Admission number already exists","ip":"154.159.237.69","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Admission number already exists\n    at Object.createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.service.js:375:31)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.controller.js:19:21)","timestamp":"2026-09-16 10:47:33","url":"/api/v1/students","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.42,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/students","requestId":"cdedb654-3fba-4776-b93c-4fa5d68dc5cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":409,"timestamp":"2026-09-16 10:47:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Complete Registration","name":null,"type":"submit"},"durationMs":43,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":20.21,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2db8b252-f823-4fb6-80a9-689603e142d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":409,"url":"/students"},"durationMs":973.3,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":13.74,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc52c9d3-c953-42b1-bd50-c41909d9b06f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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.22,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c8ba16cf-632c-40e7-b647-f5e9df2fa79a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":26.61,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2a993fe4-6ae6-4f1f-a1c2-ec965e198c15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":16.11,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"98a48349-2302-4eb7-be59-dcb8d6fc3e3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":29.73,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"771906f9-ebf7-4100-a747-b33845f964f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:47: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":18.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"28568c12-b510-48b7-9967-8919f271480b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:47:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:48:00"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":3,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":1,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":26.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc71aaec-b0b7-4bcd-b3b5-d04598a12c75","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":1,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":18.15,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ca079dd5-e081-4fee-8640-bb6e56931ff3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.17,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d7813d7f-7031-4421-b232-07758e164fea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:48:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":22.44,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"78df7704-fae6-4343-aed4-fbfe3c39e6ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":929.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"Transport RoutesNo Bus","name":null,"type":"button"},"durationMs":37,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":32.35,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c66d6b72-8710-4133-8d6a-5c0f2b8604b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":71.48,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e8ce6dcc-7d8c-45a3-a32b-4a005dea9497","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:48:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1203.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":26.58,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8604ca50-04fa-412c-8948-0527cd6327c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Uniforms & AttireNone","name":null,"type":"button"},"durationMs":34,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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.26,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7a388c5-c296-4c68-8eb4-d45ad5c5cf37","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Uniforms & AttireNone","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":24.65,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93d69e7b-112b-4d7a-8c42-393d3c413b25","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Uniforms & AttireNone","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":16.45,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64316040-e56d-438f-86fd-cbf16fc8b576","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":17.3,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8b56eedb-7239-44a1-ae86-7eda9d61c605","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"13f8d5f0-ca7e-4adf-92bd-6e04645a973a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":24.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f5cef714-d4c9-47e0-8658-394cedbfac7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":26.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ec33af1b-123b-4325-8387-6809f8aa2aad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":25.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4aca0a65-ecb5-411b-8890-d0105bce99e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":15.95,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a2ae2288-d0c4-4ca5-869c-45cf100777a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":14,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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.46,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"083f65cb-2085-4b79-a19d-d0212fc74102","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10: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"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10: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":25.26,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"45a8bbfe-163f-41b7-a0bf-127cddfba7cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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":{"id":null,"label":"No Additional Meal PlanStudent brings packed lunch / self-catered.KES 0.00","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:48: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.76,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a066ea5-87df-4854-b2ed-993111d16478","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:48:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:49:00"}
{"durationMs":60,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4f58366d-7bb4-4e24-a6b5-650a6c377a38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:49:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transport RoutesNo Bus","name":null,"type":"button"},"durationMs":33,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:49: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":30.14,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1b467b60-0b33-402e-8aff-d1a638d94888","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:49:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.14,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cb6503dd-3636-458b-b3a6-95204e0ddc85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:49:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1148.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:49: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.79,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7b9124ba-cdac-4c3c-9187-175e9af84cea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:49:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transport RoutesNo Bus","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:49: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":1855.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:49: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":29.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0c87ca1e-f07d-4a42-83dd-0564dec00796","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:49:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transport RoutesNo Bus","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:49: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":21.6,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3919dc6a-3a4e-4ded-8fd4-554e556d4bd5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:49:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Uniforms & AttireNone","name":null,"type":"button"},"durationMs":18,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:49: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":21.62,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"49e4c4f2-cc54-47ea-bee6-34400051e8e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:49:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Item","name":null,"type":"button"},"durationMs":58,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:49: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.01,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1f314f47-abcb-4b37-9855-623ee88351ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:49:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"800f7215-810c-40c5-9985-bf7b9d68a014","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:49:58","userId":null}
{"durationMs":2.5,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"ba306ca1-f97e-44e5-8b45-960b4b008443","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:49:58","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:50:00","totalConnections":1}
{"durationMs":45.42,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"78da3c0f-c8af-4e30-8337-3192efa40cf2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.6,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2ab7848b-6371-4385-a475-b8478e2e8b14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.69,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f03e1ff7-4a97-46d7-960b-b23ebeadb370","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":103.17,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5646f19e-9c51-4061-9c24-dfa0569f9a47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":198.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"b1a9a289-1714-4a47-b349-4a2fbcf3a86c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":624.73,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ddfc1b64-85ec-41a4-9c67-6acb57af249d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":673.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"b8eb988e-65c6-4a7a-a8bf-cb4d3f42ceb5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":557.44,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"633d7d5b-4805-47fa-8ace-85786cd2b202","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":640.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"1384a577-8132-4aca-9b0b-73a969a7806f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":623.95,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"69e50bbc-25f4-43c2-b498-881918e7c1a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":524.77,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"0da9d60f-6da3-49d6-b15c-062a897cbf4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":495.26,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"402237b0-91df-40ae-bd78-a7868ffb96f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":617.55,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"bfccf458-43ce-487e-a706-6cf380849d36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1866,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":1937.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":1969.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/school/mpesa-config"},"durationMs":2328.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":16.13,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"070f6d7b-0398-439f-a2fc-73fd502dfd1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"179b2a09-1cf3-407e-82a7-7ae18154a800","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:02","userId":null}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":2743.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/dashboard/stats"},"durationMs":2589.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/dashboard/recent-activities"},"durationMs":2680.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/dashboard/revenue-trend"},"durationMs":2686.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/dashboard/attendance-trend"},"durationMs":2689.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/communications/whatsapp/status"},"durationMs":2691.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/communications/sms/settings"},"durationMs":2695,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/dashboard/grade-distribution"},"durationMs":3141,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":60.04,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0c41243d-fca8-4a2b-b6e3-327fabe1c727","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":47,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":16.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a34dfa01-dfbc-43fe-a429-2b20058f2e95","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789544972884-97395","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":15.26,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"91a59c7d-810d-4efd-91f7-e88c1496417e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.94,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"ab533c33-aa86-4a60-8be9-07f43afba4b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.84,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"1c0a00d5-c86f-4551-9e5d-1dc86ad8014b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":341.52,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"eb9208a7-908c-4493-a051-f8f62b670a51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":335.63,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"c76c2edd-e10f-40f1-9193-6cdc68210a55","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789544977083-801638","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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","href":"/dashboard/students","navId":"1789544977083-801638","text":"Students","to":"/dashboard/students"},"durationMs":328,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"1789544977083-801638","to":"/dashboard/students"},"durationMs":404,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":33.71,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"473611ab-0279-44c8-ba0a-91f081d52b4d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":2838.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":3001.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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/stats"},"durationMs":3288.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":3346.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":16.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7f407a0-fa12-4be7-9b10-b83e7020af81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.95,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"0614e3ca-8f39-4c9f-8eb8-7adf8a030970","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1789544983938-507179","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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/students","href":"/dashboard/guardians","navId":"1789544983938-507179","text":"Guardians","to":"/dashboard/guardians"},"durationMs":671,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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/students","navId":"1789544983938-507179","to":"/dashboard/guardians"},"durationMs":671,"event":"NAV_STALL","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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/students","navId":"1789544983938-507179","to":"/dashboard/guardians"},"durationMs":701,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":24.09,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2e94fef7-e98c-497f-8c6c-f89d13138cb0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":1532,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":19.99,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"77fd4658-b9e8-4b6b-b08f-52f461192726","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789544996697-786129","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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/guardians","href":"/dashboard","navId":"1789544996697-786129","text":"Dashboard","to":"/dashboard"},"durationMs":197,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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/guardians","navId":"1789544996697-786129","to":"/dashboard"},"durationMs":277,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":36.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"60f29384-de59-4c28-a92d-a624d8036cce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789545004969-629053","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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","href":"/dashboard/students","navId":"1789545004969-629053","text":"Students","to":"/dashboard/students"},"durationMs":201,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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","navId":"1789545004969-629053","to":"/dashboard/students"},"durationMs":282,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":51.62,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2c2c3b3d-27d5-444f-aad6-9942f781a704","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.75,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"9b389ad0-e930-4a0e-8508-f00683b6e2dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.29,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"b5edf744-14be-4db0-87f8-3032891f46a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":2689.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":"/academics/streams"},"durationMs":2696.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":26.85,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6c897cf-0c00-4aeb-a92e-468425242528","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1789545009360-343331","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":{"from":"/dashboard/students","href":"/dashboard/guardians","navId":"1789545009360-343331","text":"Guardians","to":"/dashboard/guardians"},"durationMs":116,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":{"from":"/dashboard/students","navId":"1789545009360-343331","to":"/dashboard/guardians"},"durationMs":150,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:50: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":18.64,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c8415f76-9cb9-479d-9fde-f84e0fc228d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:50:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:51:00"}
{"durationMs":59.25,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5037c487-df7b-4c5b-8e60-8eed1b3a4ca9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:51:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.83,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b93fa07d-3166-4e95-b15c-89e4a114abf6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:51:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2036.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:51: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":2199.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:51: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":{"href":"/dashboard/guardians/new","navId":"1789545022253-63598","text":"Add Guardian"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:51: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":16.86,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4c9404a-fd2e-4935-9dcf-3788f0528859","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:51:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/guardians/new","navId":"1789545022253-63598","text":"Add Guardian","to":"/dashboard/guardians/new"},"durationMs":566,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:51: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/guardians","navId":"1789545022253-63598","to":"/dashboard/guardians/new"},"durationMs":566,"event":"NAV_STALL","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:51: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/guardians","navId":"1789545022253-63598","to":"/dashboard/guardians/new"},"durationMs":690,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:51: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.48,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"38cc0d28-fdd6-4641-82f1-a40fbee7546a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:51:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:52:00"}
{"durationMs":61.92,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ecc56183-b60b-4062-a566-87fe2f58eaa7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:52:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.65,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a5773c3f-afe8-4188-ab86-42064a4dce4a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:52:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1933.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:52: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":2465.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:52: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":18.33,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7d7d2dbb-a838-4f9a-9f1b-d12ae60c4cda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:52:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":100.4,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/guardians","requestId":"562d01ff-ee7e-4589-870d-0a15d075029e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":201,"timestamp":"2026-09-16 10:52:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.95,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"883e68c8-64d8-4bd5-a4bb-9765baeb74dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:52:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Create Guardian","name":null,"type":"submit"},"durationMs":98,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:52: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":"POST","status":201,"url":"/guardians"},"durationMs":548.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:52: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":{"from":"/dashboard/guardians/new","href":null,"navId":null,"text":null,"to":"/dashboard/guardians"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:52: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":{"from":"/dashboard/guardians/new","navId":null,"to":"/dashboard/guardians"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:52: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":16.83,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"126aec0f-dba5-4958-b93a-435b82a06645","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:52:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":420.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:52: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":15.37,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"58385610-fa4d-466d-9e1f-87f8b3b3b9d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:52:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:53:00"}
{"durationMs":63.7,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"94848f75-4b31-4d58-94b8-220474b10def","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:53:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.69,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1c648c48-ad3c-447a-a62d-985b41f79ce8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:53:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":579.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:53: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":542.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:53: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":16.63,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3eb7b3f2-556a-474c-9427-0f968026a038","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:53:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:54:00"}
{"durationMs":93.39,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8375ea17-2983-4d9a-a47e-7fc2a643aacb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:54:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.32,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1c991b3b-da5d-448e-83df-2b62ca992fab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:54:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":4552.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":3872.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":27.7,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d81514e9-3674-4397-82db-fb709007647b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1789545216461-707912","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":16.72,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"366f3bb0-d0c5-4967-97ca-09e26eb35572","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:23","url":"/api/v1/guardians?page=1&limit=10&search=k&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":249.27,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=k&includeStudents=true","requestId":"1191462b-c640-443b-b9b6-5e48de06449d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:24","url":"/api/v1/guardians?page=1&limit=10&search=ke&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.37,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ke&includeStudents=true","requestId":"a5302809-fa2b-4614-bcaf-b16e10ddc121","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:24","url":"/api/v1/guardians?page=1&limit=10&search=ken&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.37,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken&includeStudents=true","requestId":"cd0cd24e-0fe2-457e-9afe-1cae7cec450e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":950.1,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":500,"url":"/guardians"},"durationMs":829.7,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":28.36,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ea08360-a0b6-46f8-a899-85ded5aee3f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:25","url":"/api/v1/guardians?page=1&limit=10&search=ken&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.43,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken&includeStudents=true","requestId":"987ccdb0-c1f9-4660-8eb3-396dcb25dc6a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":673.1,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":24.5,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2438de03-8420-4802-92c9-5cf134f590ae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":623.2,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"388850b1-4830-4af8-8f2f-3aaa07832fe2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:39","url":"/api/v1/guardians?page=1&limit=10&search=ken+&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.8,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+&includeStudents=true","requestId":"e580180c-0688-41f5-9a79-9977a89fadc1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:40","url":"/api/v1/guardians?page=1&limit=10&search=ken+w&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+w&includeStudents=true","requestId":"d3848bc7-7810-4f8e-90af-ca90c95136fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":902.9,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":188.82,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0f67e433-366e-4e06-8a75-4f1fc7e69c01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:42","url":"/api/v1/guardians?page=1&limit=10&search=ken+wa&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":338.17,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+wa&includeStudents=true","requestId":"33943ee8-7592-4d4d-a3cb-992fabac5ba8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:42","url":"/api/v1/guardians?page=1&limit=10&search=ken+wan&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":338.93,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+wan&includeStudents=true","requestId":"1ed67bba-0166-45d5-8549-2dcd2bc7f7dc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:42","url":"/api/v1/guardians?page=1&limit=10&search=ken+wanz&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.96,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+wanz&includeStudents=true","requestId":"3ec0cc80-0d4f-4fb0-9996-b75c9d5726a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:43","url":"/api/v1/guardians?page=1&limit=10&search=ken+wanza&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.67,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+wanza&includeStudents=true","requestId":"3fb9bc76-92c3-4a26-b966-65cf6f1d227f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:43","url":"/api/v1/guardians?page=1&limit=10&search=ken+wanzal&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.4,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+wanzal&includeStudents=true","requestId":"3a4dac2d-65c6-47b2-bf28-4888b795beda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:43","url":"/api/v1/guardians?page=1&limit=10&search=ken+wanzala&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+wanzala&includeStudents=true","requestId":"9ec1f74a-af0e-45f9-aa73-b9c2f453513c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":1431.7,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":500,"url":"/guardians"},"durationMs":3489.4,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":500,"url":"/guardians"},"durationMs":2706.1,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":500,"url":"/guardians"},"durationMs":2330.3,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":500,"url":"/guardians"},"durationMs":2708.9,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":500,"url":"/guardians"},"durationMs":1845.5,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":500,"url":"/guardians"},"durationMs":1417.8,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":21.6,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4783a009-5ff8-4e44-b2dd-84282ab39b14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 10:54:46","url":"/api/v1/guardians?page=1&limit=10&search=ken+wanzala&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.3,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=ken+wanzala&includeStudents=true","requestId":"c9d777cf-fbe3-4b64-b593-3c714d1acc9a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 10:54:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians/new","navId":"1789545244543-840793","text":"Add Guardian"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/guardians/new","navId":"1789545244543-840793","text":"Add Guardian","to":"/dashboard/guardians/new"},"durationMs":132,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1789545244543-840793","to":"/dashboard/guardians/new"},"durationMs":177,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.67,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1e59682-49d4-4fe7-8cb5-662f8a2fd67e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":2719,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:54: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":25.15,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d68dd610-d9bf-4ace-b407-11f5cd715e20","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:54:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 10:55:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34d4189b-d7d3-423b-8ae0-a24d3ff1be4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:55:01","userId":null}
{"durationMs":62.21,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"741eae01-c87f-4840-8886-b04bd8a5633e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:55:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.74,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"08e74f4f-0768-4d66-bf35-a4573a9cf220","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:55:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1257.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:55: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":1501.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:55: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":30.76,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6723300d-17ee-4b48-8323-b42e88299ee3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:55:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 10:59:00"}
{"durationMs":1.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e583a93-a768-44a0-8330-3ae22f5d1861","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:18","userId":null}
{"durationMs":3.92,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"2316577b-2fab-4e47-a478-bbffdc74a63d","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:59:18","userId":null}
{"durationMs":2.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"e49194c3-32e4-474d-9637-5b588bc2820c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:19","userId":null}
{"durationMs":3.45,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8766d609-a069-42df-a764-89eb90252e02","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:20","userId":null}
{"durationMs":1.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fbd6192f-c525-4751-a487-c3ca08683fc4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:20","userId":null}
{"durationMs":1.84,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ad3e542a-455b-4254-9853-34d641542f5e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:21","userId":null}
{"durationMs":2.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"67b0e64e-0338-434a-acab-aa49cdf59baf","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:21","userId":null}
{"durationMs":3.99,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"0ee10ec7-cb94-4fee-82c9-b49d3e50997b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:21","userId":null}
{"durationMs":4.57,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"c3fa0894-e4ee-4ff8-ac9d-c602b45a05f6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:21","userId":null}
{"durationMs":3.84,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"7a518ad7-e18f-47ed-8be9-b67080042ee7","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:22","userId":null}
{"durationMs":6.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"17322afb-76d9-4def-b646-2ced557d36fb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:22","userId":null}
{"durationMs":2.82,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"8d95ed1f-570a-489b-99a4-86aee4a5f35b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:22","userId":null}
{"durationMs":3.95,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"aa65a148-5b4e-4999-965d-d11175d37d03","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:23","userId":null}
{"durationMs":2.85,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"9cff45a9-67be-437e-ae66-64f339f8b773","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 10:59:23","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:59: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":null}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 10:59: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":null}
{"durationMs":2.35,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8b1314ee-3f8d-417d-b484-638bac573e5e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:23","userId":null}
{"durationMs":43.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"1cb1a07c-8996-4739-a5b9-770aaef7a46f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:23","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":882.8,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/communication/notifications/inbox-count"},"durationMs":2036.8,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/communication/notifications/unread-count"},"durationMs":2212.4,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/communication/notifications"},"durationMs":2612.3,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/dashboard/stats"},"durationMs":2592.2,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/dashboard/revenue-trend"},"durationMs":2845.7,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/dashboard/attendance-trend"},"durationMs":3209.1,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/dashboard/grade-distribution"},"durationMs":3418.7,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/dashboard/recent-activities"},"durationMs":3741.5,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/school/mpesa-config"},"durationMs":3978,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/communications/sms/settings"},"durationMs":4279.3,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":401,"url":"/communications/whatsapp/status"},"durationMs":4654.2,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":182.77,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8bc24b5c-1a9f-4f9a-8f61-85fd383878a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":407,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"2ebd47ae-77b8-4c83-970b-11916cc6b2d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:59:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":506.3,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"36a1920b-a516-411e-ac91-8faa0bfd1835","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:59:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":835.32,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"6894c617-8a46-4d11-a815-d3507c992c65","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":901.46,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5dc09faa-c0f8-4d6e-85c1-2b7dbb343766","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:59:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":909.78,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a6152941-de5c-4147-82c9-e6c4f0ed3aa0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:59:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":937.07,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"1eec7ea8-6068-4ab3-a22d-f4782fe007da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":805.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"15eef316-afda-4833-8a9c-1d0bcefce4c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:59:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":835.47,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a7334506-9d88-4eb4-9044-957b504422f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:59:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":896.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"e8b8ea58-49c3-4eee-9c66-6b5f6b9de79d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 10:59:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":946.77,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"696a7e18-479c-4c39-9231-679e52dfc449","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":968.19,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"d104ea90-4492-4f8f-9010-6ddb5cdd48fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":932.52,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"653b7eb6-2d22-455c-8b23-7c95994c7e1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1140.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/school/enabled-modules"},"durationMs":1143.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/dashboard/recent-activities"},"durationMs":1242.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/dashboard/stats"},"durationMs":1327.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/communication/notifications/unread-count"},"durationMs":1345.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/communication/notifications/inbox-count"},"durationMs":1348,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/communication/notifications"},"durationMs":1351,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/communications/whatsapp/status"},"durationMs":1386.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/communications/sms/settings"},"durationMs":1393.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/dashboard/attendance-trend"},"durationMs":1422.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/dashboard/revenue-trend"},"durationMs":1425.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":"/dashboard/grade-distribution"},"durationMs":1427.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 10:59: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":22.98,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a4d20226-b264-4743-bed2-d3e2b637555b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 10:59:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:00:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"024d4aa8-cc10-4969-b457-18c0570e28cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:03:00"}
{"durationMs":143.41,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"c5e6072e-8ce6-42a5-bc2f-d4de30dd1a2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:03:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":145.52,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1af7312c-8af5-4e05-ace3-fd975e5492ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:03:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":164.47,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a650d21d-e056-48e3-902f-4cb09f218929","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:03:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1503.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:03: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":1395.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:03: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":1400.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:03: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.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b085a0d7-ae62-4cd4-9b16-1252ce78ae46","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:03:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:04:00"}
{"durationMs":138.02,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"ee0a7fc9-0eba-40d3-8019-0f845f2ae0a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:04:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":443.86,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"4e75acae-018b-4127-837b-5e93896f0559","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:04:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":516.84,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"090bfdc1-6027-4c71-9796-d9e10a2097bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:04:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":528.06,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6a48410d-1736-49ef-9159-880c5a7a09d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:04:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":729.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:04: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":26.56,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d14817a8-c858-4185-855f-98c2436aee54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:04:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":954.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:04: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":1052.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:04: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/unread-count"},"durationMs":1051.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:04: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":27.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f214aaf9-be3a-45cd-a177-7298c5eba950","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:04:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:05:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7532c87e-99c1-4cd8-8c93-4d0c3bad93c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:05:01","userId":null}
{"durationMs":50.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"29c6b7cd-1b24-4b6a-b181-bc895601f755","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:05:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.19,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"40b1eb2f-2e2f-4f01-a086-9a98bb04f0c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:05:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.45,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9a2b0979-5d93-41f7-a99c-b11c61780f17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:05:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":418.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:05: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":"/communication/notifications/unread-count"},"durationMs":535.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:05: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":"/communication/notifications/inbox-count"},"durationMs":541.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:05: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":16.08,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7bf93a9b-de2b-4dd3-aeb4-3d4377498b34","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:05:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:06:00"}
{"durationMs":56.56,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"1d4657bc-c3c2-4fe1-b73c-16e41e86a7ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.39,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"461691f0-97e2-4707-b410-c1294950f870","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.84,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"45721ddf-0117-443e-bc24-d6b00f75703d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":445.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"/communication/notifications/unread-count"},"durationMs":507.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"/communication/notifications/inbox-count"},"durationMs":539.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":15.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e42a0f4-1a5b-4beb-80e6-d75e2d33bc58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.33,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"daf80dd4-e075-45fa-96ca-8d5ff5af11cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:35","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":15,"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-16 11:06: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":null}
{"durationMs":2.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"edaaf447-397e-4acf-94c6-f3a3c3f829ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:46","userId":null}
{"durationMs":765.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"66ed3ce9-8e73-4f3e-be47-8a5d5d463abf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:50","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":44,"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-16 11:06: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.13,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e17a0488-85a8-4dee-9a3a-94bd947d05e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:50","userId":null}
{"durationMs":74.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"bbea4707-b85f-4a66-b2e3-70fa54c716a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"568c32eb-ddb0-4662-a0cf-ab07bba1d418","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":294.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4022538d-d88e-4c07-816b-9e99a9fd3585","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":172.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3283c281-0991-4301-b7bf-8ded6b689367","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":106.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"61adbef2-47e6-41bf-89cf-5fab6d215604","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"88ffa3ff-ac69-4aba-8cfa-d76b5e115eb0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"101c997b-3fae-478a-9508-eb9d4105d574","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":101.77,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"5aa7b702-e44a-4e56-8b28-0096e94a9106","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":156.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b04ab6d3-5a35-4ca6-bc41-6db7678a1e48","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"1bbae037-38fd-4ceb-8956-bb1fcf2ef9b8","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:51","userId":null}
{"durationMs":126.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"8e79bdf4-2a38-4ce8-b0f2-225b56906d24","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":186.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"58f84241-0194-474a-854f-051b14b00bfe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.47,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"f1a2db8b-744e-4cd0-9b92-75ccde6797f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1420.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":411,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.19,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1035d259-a463-476a-9df8-34f3caecc434","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":208.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"d1731b5c-6f96-4633-9d20-10ac6b6d8fab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":199.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"b42a1c29-4aba-4710-90f5-b28842a2c0a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"cd59bab5-cc3b-47b9-b24e-55503e7fbd22","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":231.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"55f86428-f0cc-43ff-b5f6-921ec764b55e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":159.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"28f643bd-aece-47cb-9697-950f52731568","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":155.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"579b2743-70a2-4765-93e2-787bcefa326f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":591.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":652.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":670.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":552,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":786.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":656.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":673.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1132.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1135.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":961.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":981.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":982.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":994,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":995.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":997,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1042.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1044.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a32de28-baa4-41a1-8b93-301327348f90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":4.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"678ac158-7d79-44ab-b945-5fb55895b866","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:06:54","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":40,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":91,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6431f5bd-0e88-4914-a72b-68de59304b5a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b288e510-589e-4154-b683-55346546243d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"a86d714b-552f-4df6-a2e4-e0390d2b1ce0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789546011072-366829","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1789546011072-366829","text":"Students","to":"/dashboard/students"},"durationMs":462,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789546011072-366829","to":"/dashboard/students"},"durationMs":645,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1ca10909-8864-4462-b52c-935831cfe2f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"ae12f0d6-5a83-4fa1-8870-495a27c79fea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"da8db2be-e776-41e2-93ed-9278df281d84","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":373.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":852.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1007.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":1008.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:06: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.22,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"48301c0c-07e6-4ad0-9235-3e1db7c1ddf0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:06:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:07:00"}
{"durationMs":5.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"a7b35ced-5327-4e06-a3e9-795bddfb997c","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:07:11","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":94,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b2a4af1-d97e-49b1-8b95-1b2aa0806a27","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":86.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"a68bc1f3-ad8f-4731-be05-7c93e1a86c1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1789546028941-102109","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard/guardians","navId":"1789546028941-102109","text":"Guardians","to":"/dashboard/guardians"},"durationMs":218,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1789546028941-102109","to":"/dashboard/guardians"},"durationMs":304,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":428.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7849f8df-e6d5-4568-bae7-51a428f84a10","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.67,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"b18cea00-ed22-476e-886d-3fa6d74b8499","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:07:16","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":87,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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"}
{"data":{"href":"/dashboard/academics","navId":"1789546032000-4173","text":"Grades & Streams"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":28.57,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93f01f17-7463-4a34-b9fe-0716c664677a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"4f5b3c8b-d0a1-475e-989e-9bf1b9ca246a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/academics","navId":"1789546032000-4173","text":"Grades & Streams","to":"/dashboard/academics"},"durationMs":843,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1789546032000-4173","to":"/dashboard/academics"},"durationMs":843,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1789546032000-4173","to":"/dashboard/academics"},"durationMs":877,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":371.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cbdb4057-3187-4f09-865a-795a4c295036","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"b33c1454-9a5a-4b30-baf2-f03e3acfd984","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:07:19","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":93,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/subjects","navId":"1789546035535-346057","text":"Subjects"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.99,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"deee12b7-1093-4c78-b6f5-65cfb3ef4036","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.89,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/departments/list?type=academic","requestId":"5062614b-5fc4-4767-a32d-9eb2b04b3ce0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"ecf7c6fa-d1e0-4056-9f95-de89932d16fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"82ad7a98-4917-42ac-a813-890b068c1f4d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","href":"/dashboard/academics/subjects","navId":"1789546035535-346057","text":"Subjects","to":"/dashboard/academics/subjects"},"durationMs":213,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07:21","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":"/dashboard/academics","navId":"1789546035535-346057","to":"/dashboard/academics/subjects"},"durationMs":287,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07:21","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":"/staff/departments/list"},"durationMs":440.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07:21","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":15.77,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"868da2c2-e31b-4203-9b54-bc1d7bcd2190","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":1065.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/teacher-assignments"},"durationMs":1071.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:07: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"699fb73f-8cfe-4bbb-9db5-519e57010638","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:07:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:08:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":605,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd545aab-b541-4627-aa72-aac97a7d70ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:08:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":167,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:08: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"36f850d2-3644-4d5f-b082-7a28283f3645","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:08:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:10:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5178ebc-8939-482e-a140-2b01d6783504","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:10:01","userId":null}
{"durationMs":192.27,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1c4b85d6-5ed4-4f79-a107-ae2719988197","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:10:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":198.68,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"29022be1-17f8-44ff-ba01-597eff139e09","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:10:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":264.06,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2bc18156-412c-42b2-9d10-0a2c4ecac97a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:10:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":3850.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:10: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":"/communication/notifications/inbox-count"},"durationMs":3540,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:10: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":"/communication/notifications/unread-count"},"durationMs":3638.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:10: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":20.78,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cfe1101d-0318-470d-9462-728d55d61186","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:10:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:11:00"}
{"durationMs":148.36,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"34e1a7df-0175-402c-8cc9-6380cd635bec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:11:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":130.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f1c7f8ee-056b-46a6-9ebe-a6da8c36979e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:11:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":176.83,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4810b3e1-a4bf-4afd-9892-a96f54619522","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:11:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":511.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":524.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":594.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":21.41,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1466f15b-7736-4082-ba8c-a3644b0ff163","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:11:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:12:00"}
{"durationMs":135.85,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e9a32dae-0a92-4ca8-8d96-2929437f6b20","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:12:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":173.65,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"11e420d0-3d39-48ba-8dce-d073f4203033","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:12:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":256.11,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"dd96a732-f039-405f-b277-64c4a52344ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:12:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2002.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:12: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1899.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:12: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"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":2083.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:12: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":20.36,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25faa6da-0967-484e-8c66-da632c3edbc0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:12:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:13:00"}
{"durationMs":2.69,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"75b9ed73-e1b8-46bc-adb5-4305cd4dc100","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:05","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":68,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":51.02,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0283a219-a253-46de-9e4e-7a51997ba83e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"MENU","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":16.54,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f563d37b-a3d2-400f-8c80-188b08eab6d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"MENU","name":null,"type":null},"durationMs":16,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":{"id":null,"label":"MENU","name":null,"type":null},"durationMs":47,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":27.35,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd9e39bc-d12f-4423-a09c-02e97d1a0350","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"MENU","name":null,"type":null},"durationMs":45,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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.1,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c3ae9bd-9703-4e94-908b-6935c0748ce5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":0.79,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1831223a-7a54-4e57-b67a-d9658c6ba4c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:53","userId":null}
{"durationMs":226.48,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"5a9a433d-f421-4b5a-b748-7b2b85270c1e","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:54","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":174.93,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fd5dbfc3-c44e-4d05-b3bb-57ae06a29511","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":564.56,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"4343b6ea-7689-4b3f-a024-a46f4d5d53c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":574.77,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"9e3cf6f0-da9f-422e-b710-23bcfa1ad6a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":738.76,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"ccd4f3ec-7326-4fc8-a284-2dc99e3dbb29","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":794.78,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a12c0115-6b7b-49c8-b83a-9fd4c17ebe73","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":790.69,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"2d6e4114-5b7e-4ec6-9a0f-16d8844c7c90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":814.45,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"0a4af60f-41e1-404b-b02a-ad435acde0d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":753.08,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"67a3c4e6-c4de-4cd4-9555-5cb6db49d5a9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":809.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bc97d5be-4d6d-4ace-89d4-d64ef2958019","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":717.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"d85d1c4a-693a-4efa-b4d7-724999717885","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":841.37,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"f7f88f2b-be9d-48c2-8895-dec284ff15af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":847.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"a6f9b4a5-64b7-4f37-8ad4-b0f0995f1967","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":843.96,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"a7d91ae6-e3c6-48ab-b46c-b4658aa66314","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":3724.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":"/school/enabled-modules"},"durationMs":3808.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":3863.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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/stats"},"durationMs":3939.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":3976,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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"},"durationMs":3977.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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/revenue-trend"},"durationMs":4091.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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/attendance-trend"},"durationMs":4111.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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/grade-distribution"},"durationMs":4120.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":4491.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":"/communications/sms/settings"},"durationMs":4625.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":"/communications/whatsapp/status"},"durationMs":4635.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:13: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":21.18,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ae1ec21d-7332-4e39-8aa1-f0e6c2486301","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"b5c81b4a-862c-4981-9427-789cba94b407","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:13:58","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":100,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":19.36,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c66d11eb-2adb-4458-ae7f-c8efd57f9a75","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:13:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:14:00"}
{"durationMs":2.3,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"bd0c307f-e2fa-4f58-ad0d-0a22b00f7521","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:14:03","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":53,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":12.95,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"14a4e7c4-5c25-4388-ac16-0a6a506903f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b1e8dc26-0f03-47cf-9319-af12ce066600","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.55,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"2c20e7cd-cd77-4958-b2d8-1701bd068b14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"aee65811-31f8-4436-adf0-af886163d6e7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":136.38,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"882cc9c3-7be8-436e-82d5-ac84a90615e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789546405014-665119","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":{"from":"/dashboard","href":"/dashboard/students","navId":"1789546405014-665119","text":"Students","to":"/dashboard/students"},"durationMs":511,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":{"from":"/dashboard","navId":"1789546405014-665119","to":"/dashboard/students"},"durationMs":511,"event":"NAV_STALL","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":{"from":"/dashboard","navId":"1789546405014-665119","to":"/dashboard/students"},"durationMs":622,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":14.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9cbeea5d-7165-44cf-9835-0a6d073ad021","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":518.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":"/academics/classes"},"durationMs":521.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":"/students"},"durationMs":880.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":"/students/stats"},"durationMs":883.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":19.21,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6159c07-c83d-4684-ad2b-9a47dbf5e86c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789546420230-559577","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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/students","href":"/dashboard","navId":"1789546420230-559577","text":"Dashboard","to":"/dashboard"},"durationMs":225,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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/students","navId":"1789546420230-559577","to":"/dashboard"},"durationMs":353,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":13.28,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f3f87e91-b204-4141-b807-673d4d4f61eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":5.58,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"8d7b25e0-e0bf-46ed-a54e-795f055858c4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:14:49","userId":null}
{"durationMs":2.52,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"71174813-34b1-4adc-af33-d52d024385c6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:14:49","userId":null}
{"durationMs":43.23,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"890a1a9f-32a2-467f-8258-ed04bfb2c64c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:49","userId":null}
{"data":{"href":"/dashboard/students","navId":"1789546448074-506292","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 11:14: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":null}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1789546448074-506292","text":"Students","to":"/dashboard/students"},"durationMs":268,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 11:14: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":null}
{"data":{"from":"/dashboard","navId":"1789546448074-506292","to":"/dashboard/students"},"durationMs":452,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 11:14: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":null}
{"data":{"method":"GET","status":401,"url":"/academics/streams"},"durationMs":349.4,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 11:14: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":null}
{"data":{"method":"GET","status":401,"url":"/academics/classes"},"durationMs":353.3,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 11:14: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":null}
{"durationMs":4.38,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc970f49-7bf0-4efe-9084-a2e177c3dc0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:49","userId":null}
{"durationMs":81.07,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b50b35eb-1dee-41aa-986c-28596f4ecabb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.18,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"7105daf2-05a0-4be1-8b20-9e9ebecb2ae6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":590.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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/classes"},"durationMs":621.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":38.82,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"896bd793-9085-4918-848f-e49effc7d4b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.7,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"34354fd4-25f8-43e8-a308-46dd57fd2914","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:14:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.52,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"482935c3-2470-48e7-a816-37a0647ace54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:14:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"89b7f352-8818-40a0-b80e-dc54eb213ffd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.01,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"26f6f45c-72d3-4e1e-a661-42cc05e64e17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":156.48,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/next-admission-number","requestId":"c95e451e-eae7-4748-b190-3f495f12e132","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:14:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":443.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":{"id":null,"label":"Add Student","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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/students","href":null,"navId":null,"text":null,"to":"/dashboard/students/new"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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/students","navId":null,"to":"/dashboard/students/new"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":482.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":23.45,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d8f0119b-7fbb-468f-89fa-d3f703206080","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":522.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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/streams"},"durationMs":526.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":"/students/next-admission-number"},"durationMs":555.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:14: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":18.7,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"79a2684a-fd89-4e13-8c74-3cdffed1bcb0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:14:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:15:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"481d2efa-3ada-4b04-be3c-91733f6fbc64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:15:02","userId":null}
{"data":{"id":null,"label":"Select Date of Birth","name":null,"type":"button"},"durationMs":178,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:15: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":26.09,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ae088160-9e50-4aba-9cf6-10e5721b5a46","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:15:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":"previous-month","type":"button"},"durationMs":114,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:15: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":24.61,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3283c2b9-ea43-4006-a89b-d06e42d9af4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:15:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"2018","name":null,"type":"button"},"durationMs":44,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:15: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.11,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c957f1a9-4364-4601-8fa3-6a7b7fdc3523","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:15:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":"previous-month","type":"button"},"durationMs":100,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:15: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":20.01,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ecb7f9ea-68d6-4b49-85a0-bdbe7e028e9e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:15:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"30","name":"day","type":"button"},"durationMs":162,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":22.28,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"383edc96-f901-4008-bf27-e0e6da149919","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:15:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Next: Academic & Guardians","name":null,"type":"button"},"durationMs":19,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":21.83,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"21578b88-2b7e-4716-ac71-5b53acef7c2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:15:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.14,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e8bf97c5-dc49-42b7-8dca-490a1eee19f8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:15:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.86,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a7dbac77-ee2e-46e4-b1b2-8e3a8cff5108","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:15:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":441.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:15: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":413.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:15: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":30.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"28309122-0672-4fe3-946d-d3805e8e03a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:15:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:16:00"}
{"data":{"id":null,"label":"Next: Academic & Guardians","name":null,"type":"button"},"durationMs":79,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:16: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":17.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"afed6e6d-c252-4641-87e5-7b604c0bb899","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:16:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.93,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpow00du8bcniapshgjh","requestId":"8213991c-899a-47cf-a7ac-e8ac0cb482d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:16:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":533.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:16: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":19.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a6b75ac-abb1-4803-af09-e8e946db883b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:16:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Guardian","name":null,"type":"button"},"durationMs":132,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:16: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":46.53,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d13fd49-694e-41f2-beca-85292929a2ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:16:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.57,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"68e4809c-499e-4dc2-aef8-bcc569349be1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:16:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.91,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b4a2258a-fae1-4a80-831f-b67c0aa52208","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:16:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":456.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:16: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":692.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:16: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":19.86,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"86c872fa-d149-4fd5-afed-a4bbb3e3c1db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:16:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:17:00"}
{"durationMs":3.08,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/services/meal-plans","requestId":"b2930c82-56e8-41b0-a7f7-ba8099dd3461","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-16 11:17:47","userId":null}
{"durationMs":1.42,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/services/transport-routes","requestId":"240c0c16-4969-48c1-991d-e61fd812b5a5","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-16 11:17:47","userId":null}
{"durationMs":96.84,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/fee-structures","requestId":"82be00d0-ffed-4540-982d-6e55d126eab7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:17:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.62,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/items","requestId":"c25272dd-4fb5-43eb-9449-a37b7f281d9f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:17:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Next: Services & Finalize","name":null,"type":"button"},"durationMs":60,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"method":"GET","status":404,"url":"/services/meal-plans"},"durationMs":379,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"method":"GET","status":404,"url":"/services/transport-routes"},"durationMs":383.9,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"method":"GET","status":200,"url":"/finance/fee-structures"},"durationMs":477,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"method":"GET","status":200,"url":"/uniforms/items"},"durationMs":501,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":22.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cb022766-2ce8-4507-97b7-0b43a5ed0e8f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:17:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Step 3Services & Review","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:17: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":21.42,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cc4455ab-f2e4-46a4-842d-aede75339373","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:17:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.58,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"624f74eb-ae7c-47b2-874f-dde708cc70ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:17:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.79,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9fabbd7c-a8d2-45be-8c59-9d76fd60d3cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:17:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":544.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:17: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":"/communication/notifications/inbox-count"},"durationMs":453.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:17: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":20.48,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8e281377-ba71-44f7-a985-c6f90a460f08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:17:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:18:00"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":47.48,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"06c0e8b8-fc0d-4c7b-a2ee-b0e4004010ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":16.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9dd4c055-af12-4bf5-b96e-eb7fc947fd71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":1,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":29.22,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aee47cb5-84a2-498b-80e5-d2076db43884","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transport RoutesNo Bus","name":null,"type":"button"},"durationMs":24,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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.08,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"59ee2f53-23a4-404a-8139-644becb7ca6e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Uniforms & AttireNone","name":null,"type":"button"},"durationMs":26,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":25.83,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d198a644-6c72-4b60-9c12-8abda0401e65","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":25.26,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1dbb3244-1466-47c3-b58b-f89f10edfdce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transport RoutesNo Bus","name":null,"type":"button"},"durationMs":14,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":21.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7730ba8f-11bd-40b2-baa9-af2cd38aa6fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Uniforms & AttireNone","name":null,"type":"button"},"durationMs":22,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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.82,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1a932e02-2e4d-4c11-afd7-da97aae2cbe2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":18,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":26.21,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85845c08-a8dc-40bc-8891-056185008d11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":22,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":{"id":null,"label":"Meals & CateringSelf Catered","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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.58,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a2daaa90-c455-4579-a694-fa3cb3a1cf92","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"admissionNumber":"ADM-2026-00001","birthCertificateNo":"","boardingStatus":"DAY","county":"Kakamega","currentClassId":"cmp8gtpow00du8bcniapshgjh","currentStreamId":"cmp8gtpsp00ey8bcn9szfafwc","dateOfBirth":"2018-10-29","firstName":"ken","gender":"MALE","guardians":[{"email":"wanzalakenwanzala@gmail.com","firstName":"ken","isPrimary":true,"lastName":"moi","phone":"0118350794","relationship":"FATHER"}],"lastName":"masika","middleName":"wanzala","nationality":"Kenyan","nemisNumber":"","religion":"","specialNeeds":"","subCounty":""},"error":"Admission number already exists","ip":"154.159.237.69","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Admission number already exists\n    at Object.createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.service.js:375:31)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.controller.js:19:21)","timestamp":"2026-09-16 11:18:53","url":"/api/v1/students","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":80.33,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/students","requestId":"403b8645-8e54-4858-adee-997ee9e67d0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":409,"timestamp":"2026-09-16 11:18:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Complete Registration","name":null,"type":"submit"},"durationMs":36,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":"POST","status":409,"url":"/students"},"durationMs":445,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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.26,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"04c59675-4944-4fc9-937d-9066e6e2cfcc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.6,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2c4f6d4a-6732-46c4-8503-424433131d3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:18:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a46995f4-bc29-4896-aa96-eb4f537f158a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:18:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":439.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":389.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":12.64,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bf3b4e48-5aab-49ab-8b4c-6b38811db7f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"admissionNumber":"ADM-2026-00001","birthCertificateNo":"","boardingStatus":"DAY","county":"Kakamega","currentClassId":"cmp8gtpow00du8bcniapshgjh","currentStreamId":"cmp8gtpsp00ey8bcn9szfafwc","dateOfBirth":"2018-10-29","firstName":"ken","gender":"MALE","guardians":[{"email":"wanzalakenwanzala@gmail.com","firstName":"ken","isPrimary":true,"lastName":"moi","phone":"0118350794","relationship":"FATHER"}],"lastName":"masika","middleName":"wanzala","nationality":"Kenyan","nemisNumber":"","religion":"","specialNeeds":"","subCounty":""},"error":"Admission number already exists","ip":"154.159.237.69","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Admission number already exists\n    at Object.createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.service.js:375:31)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.controller.js:19:21)","timestamp":"2026-09-16 11:18:59","url":"/api/v1/students","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.02,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/students","requestId":"9fda031a-950b-4738-ba6b-2e64a2e1a9b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":409,"timestamp":"2026-09-16 11:18:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Complete Registration","name":null,"type":"submit"},"durationMs":15,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":"POST","status":409,"url":"/students"},"durationMs":403.4,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:18: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":15.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"10073e95-1aac-40eb-816f-7ba9ecaf1653","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:18:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"admissionNumber":"ADM-2026-00001","birthCertificateNo":"","boardingStatus":"DAY","county":"Kakamega","currentClassId":"cmp8gtpow00du8bcniapshgjh","currentStreamId":"cmp8gtpsp00ey8bcn9szfafwc","dateOfBirth":"2018-10-29","firstName":"ken","gender":"MALE","guardians":[{"email":"wanzalakenwanzala@gmail.com","firstName":"ken","isPrimary":true,"lastName":"moi","phone":"0118350794","relationship":"FATHER"}],"lastName":"masika","middleName":"wanzala","nationality":"Kenyan","nemisNumber":"","religion":"","specialNeeds":"","subCounty":""},"error":"Admission number already exists","ip":"154.159.237.69","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Admission number already exists\n    at Object.createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.service.js:375:31)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.controller.js:19:21)","timestamp":"2026-09-16 11:19:00","url":"/api/v1/students","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.44,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/students","requestId":"711c3b97-ac4a-4914-b2a3-ddaa736d341a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":409,"timestamp":"2026-09-16 11:19:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:19:00"}
{"data":{"id":null,"label":"Complete Registration","name":null,"type":"submit"},"durationMs":52,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":"POST","status":409,"url":"/students"},"durationMs":440.3,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":16.05,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ad601765-e0a5-420a-ad09-6302036e4c6a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"admissionNumber":"ADM-2026-00001","birthCertificateNo":"","boardingStatus":"DAY","county":"Kakamega","currentClassId":"cmp8gtpow00du8bcniapshgjh","currentStreamId":"cmp8gtpsp00ey8bcn9szfafwc","dateOfBirth":"2018-10-29","firstName":"ken","gender":"MALE","guardians":[{"email":"wanzalakenwanzala@gmail.com","firstName":"ken","isPrimary":true,"lastName":"moi","phone":"0118350794","relationship":"FATHER"}],"lastName":"masika","middleName":"wanzala","nationality":"Kenyan","nemisNumber":"","religion":"","specialNeeds":"","subCounty":""},"error":"Admission number already exists","ip":"154.159.237.69","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Admission number already exists\n    at Object.createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.service.js:375:31)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.controller.js:19:21)","timestamp":"2026-09-16 11:19:04","url":"/api/v1/students","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.83,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/students","requestId":"0fa9d6b2-1d4e-4842-8784-aaf2e425aa91","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":409,"timestamp":"2026-09-16 11:19:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Complete Registration","name":null,"type":"submit"},"durationMs":21,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"method":"POST","status":409,"url":"/students"},"durationMs":440.2,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":21.51,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"605d39fa-6977-48d4-84bd-43e799c09e3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"admissionNumber":"ADM-2026-00001","birthCertificateNo":"","boardingStatus":"DAY","county":"Kakamega","currentClassId":"cmp8gtpow00du8bcniapshgjh","currentStreamId":"cmp8gtpsp00ey8bcn9szfafwc","dateOfBirth":"2018-10-29","firstName":"ken","gender":"MALE","guardians":[{"email":"wanzalakenwanzala@gmail.com","firstName":"ken","isPrimary":true,"lastName":"moi","phone":"0118350794","relationship":"FATHER"}],"lastName":"masika","middleName":"wanzala","nationality":"Kenyan","nemisNumber":"","religion":"","specialNeeds":"","subCounty":""},"error":"Admission number already exists","ip":"154.159.237.69","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Admission number already exists\n    at Object.createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.service.js:375:31)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.controller.js:19:21)","timestamp":"2026-09-16 11:19:13","url":"/api/v1/students","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/students","requestId":"cd55280a-eb53-44cd-b78d-80f06bf0fa57","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":409,"timestamp":"2026-09-16 11:19:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Complete Registration","name":null,"type":"submit"},"durationMs":42,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":"POST","status":409,"url":"/students"},"durationMs":570.4,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":27.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c936e0dd-b946-4c64-866e-ab1ca609cdae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"admissionNumber":"ADM-2026-00001","birthCertificateNo":"","boardingStatus":"DAY","county":"Kakamega","currentClassId":"cmp8gtpow00du8bcniapshgjh","currentStreamId":"cmp8gtpsp00ey8bcn9szfafwc","dateOfBirth":"2018-10-29","firstName":"ken","gender":"MALE","guardians":[{"email":"wanzalakenwanzala@gmail.com","firstName":"ken","isPrimary":true,"lastName":"moi","phone":"0118350794","relationship":"FATHER"}],"lastName":"masika","middleName":"wanzala","nationality":"Kenyan","nemisNumber":"","religion":"","specialNeeds":"","subCounty":""},"error":"Admission number already exists","ip":"154.159.237.69","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Admission number already exists\n    at Object.createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.service.js:375:31)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async createStudent (/home/aereuxky/cbcsms-backend/src/modules/students/students.controller.js:19:21)","timestamp":"2026-09-16 11:19:16","url":"/api/v1/students","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.69,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/students","requestId":"7bce2b1a-e06a-4150-939a-3d192fbb9af6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":409,"timestamp":"2026-09-16 11:19:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Complete Registration","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"method":"POST","status":409,"url":"/students"},"durationMs":415.6,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":27.77,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a49c6549-eb19-4904-9fe0-49b35c2402d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.47,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"e0bb4d67-1bf1-4653-995a-84117f0e835f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":363.45,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"b197c200-be44-4db1-8ef1-3015364b37af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":509.32,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"9e4611d3-bb77-460c-ac59-5d787bdd97de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":451.08,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"748bdfed-8bab-463e-8d92-511875b0344c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":537.65,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"56ad20ec-f35a-43ef-a489-17a3bf72603d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":555.07,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"9ae08f1b-cbbc-4622-b2e3-20d4ba607312","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":437.06,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"77d66547-f072-4a71-b141-37226cfd9669","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":573.85,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"89fa83c2-1edc-4f05-a0d2-c9e830e8b6e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1789546734606-857739","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"from":"/dashboard/students/new","href":"/dashboard","navId":"1789546734606-857739","text":"Dashboard","to":"/dashboard"},"durationMs":242,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"from":"/dashboard/students/new","navId":"1789546734606-857739","to":"/dashboard"},"durationMs":421,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":448.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":28.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"99b845c9-bb77-4dc5-a04e-3d33664f2aad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":827,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":"/dashboard/recent-activities"},"durationMs":960.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":"/communications/whatsapp/status"},"durationMs":966.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":"/dashboard/revenue-trend"},"durationMs":969.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":"/dashboard/attendance-trend"},"durationMs":970.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":"/communications/sms/settings"},"durationMs":979.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":"/dashboard/grade-distribution"},"durationMs":985.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":13.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9e9b9347-865e-4af8-b251-2c49c4b0b54e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.04,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d240d034-9e38-4d5b-9993-6754e46b8b2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:19:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.79,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7eead94f-c9ef-4a35-9736-4661d2318f02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:19:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":469.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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":424.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:19: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.98,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"779a1e68-c1a4-4a9d-8f2d-7295d3d8071e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:19:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:20:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"59924ebf-cfb2-4c4f-b534-85672e1821b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:20:02","userId":null}
{"durationMs":80.27,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"88cc03e1-1dad-4d6e-acfa-66805f1ea1b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:20:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":394.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:20: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":27.11,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f33189ba-8e02-4863-8a48-d0624eeef6f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:20:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.62,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"764976e9-1af1-40e6-903e-d9171b609554","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:20:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":126.71,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1d214fa8-925d-4938-b837-bfd06c8ced26","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:20:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":521.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:20: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/inbox-count"},"durationMs":577.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:20: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":13.64,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"573f1cf5-7ecb-4f55-9329-d028886ab4fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:20:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:21:00"}
{"data":{"href":"/dashboard/finance/payments","navId":"1789546838796-75508","text":"Payments"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":29.93,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3d17bc65-045a-4ff8-aa39-2660725a0e67","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.98,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"1dc07873-bdac-4834-9ede-6fb082e9e4b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:20","userId":null}
{"durationMs":106.28,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"7ce4f12a-d925-4e3e-a94d-8a5dbdadc204","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":767.05,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices","requestId":"b649be32-6f98-4d18-8eb8-605a9ef70838","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":774.15,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"ea181493-869d-4bc1-9c35-4ac90cf9d253","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/payments","navId":"1789546838796-75508","text":"Payments","to":"/dashboard/finance/payments"},"durationMs":1147,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":"1789546838796-75508","to":"/dashboard/finance/payments"},"durationMs":1147,"event":"NAV_STALL","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":"1789546838796-75508","to":"/dashboard/finance/payments"},"durationMs":1176,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":"/banking/banks"},"durationMs":388.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":463.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":16.88,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cf833a5d-0510-4af9-a5fd-3a7edd70b489","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":1882.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":"/fees/invoices"},"durationMs":2256.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b8dc5f2-9596-4812-a6d7-1d52386f5e0f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.98,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?search=&limit=50&classId=cmp8gtpoj00dq8bcn0szz5jea","requestId":"ce98e9ce-c29a-43c8-b127-b3496680bff4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.63,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpoj00dq8bcn0szz5jea","requestId":"ad456373-c523-443d-ab76-9e16b147e6e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":436.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":437.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":14.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"728c2577-cafc-4326-a5cd-212e2f1f176e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":108.14,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"b3371a8e-d1d3-48d8-b7b5-3e94d8843f05","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":129.81,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"38081f92-b2ea-4c24-a665-b517df68fd3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":127.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?search=elvis++kahindi&limit=50&classId=cmp8gtpoj00dq8bcn0szz5jea","requestId":"dd14c94c-ce98-44fa-bcd1-aa47154d079e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"EkElvis  kahindiADM-2025-0105","name":null,"type":"button"},"durationMs":61,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":433.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":"/students"},"durationMs":512.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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/invoices"},"durationMs":515.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e3ce8ef5-d699-4ae0-9711-ba9aa804226e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.27,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/finance/payments/match-bank","requestId":"2eed10bb-0993-4d4b-a25c-58d508ae3b42","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.77,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6cc68e1b-fd9d-4f35-a357-43acff838e03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:21:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/finance/payments/match-bank"},"durationMs":1431,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":11.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93cf8c0e-a8e3-4446-a138-2914bb40f50a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.34,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"81888737-83e1-425b-a5be-d7b9f2591bd0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:21:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":434.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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/inbox-count"},"durationMs":420,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:21: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":18.98,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"100cfe1e-aaf1-4d57-9dc2-7b49d3eb6de5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:21:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:22:00"}
{"durationMs":126.77,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices/bd75a549-7486-4b62-96a0-ae5aeaa33b5b","requestId":"65b8229d-80a1-4b57-bc6d-daa452cb0e3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:22:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/finance/payments/match-bank","requestId":"a86a925f-06af-4530-94bc-3c0cd65f96ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:22:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices/bd75a549-7486-4b62-96a0-ae5aeaa33b5b"},"durationMs":463.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:22: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":"POST","status":200,"url":"/finance/payments/match-bank"},"durationMs":439.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:22: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":12.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"63519a81-8648-45c2-9adc-8122239b8372","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:22:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Continue to Transaction Details","name":null,"type":"button"},"durationMs":62,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":14.13,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8b4f1e9-dbf3-4193-b8c2-daf6db66d91e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:22:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":100.8,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/fees/payments","requestId":"10f072c3-e0ca-439d-b880-29e150f982a5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":422,"timestamp":"2026-09-16 11:22:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Record Payment","name":null,"type":"submit"},"durationMs":40,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:22: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":"POST","status":422,"url":"/fees/payments"},"durationMs":629.9,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:22: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.09,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b5038845-f039-4ee1-aabc-570747e03316","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:22:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.61,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/payments?bankVerificationStatus=PENDING_VERIFICATION,UNVERIFIED&limit=100&sortBy=createdAt&sortOrder=asc","requestId":"3255485e-2434-4ad5-91e0-ef3121181c1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:22:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Unverified Deposits","name":null,"type":null},"durationMs":93,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:22: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":"/finance/payments"},"durationMs":485.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:22: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":19.24,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c5862e5-abce-46c1-97d4-dffecfffab21","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:22:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payment Settings","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:22: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":19.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4f7e310a-32cc-41b4-b268-da2069f21eeb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.78,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"395e6017-e4dc-41f8-b296-9cd44277ba89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:22:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.18,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b5c62d82-1b55-4802-a901-9fc55d70c809","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:22:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":476.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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/inbox-count"},"durationMs":461,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":18.61,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"03374e1a-c423-429b-93da-1e0a36efd89b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:23:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:23:00"}
{"data":{"href":"/dashboard/finance/payment-methods","navId":"1789546941269-31425","text":"Go to Payment Methods Configuration"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":{"from":"/dashboard/finance/payments","href":"/dashboard/finance/payment-methods","navId":"1789546941269-31425","text":"Go to Payment Methods Configuration","to":"/dashboard/finance/payment-methods"},"durationMs":148,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":{"from":"/dashboard/finance/payments","navId":"1789546941269-31425","to":"/dashboard/finance/payment-methods"},"durationMs":174,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":28.5,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d54b5dc2-5d0b-4a74-946f-e1623161664f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:23:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"ff038c32-7bf6-45c1-96da-43c152d3a6fe","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:23:36","userId":null}
{"durationMs":328.55,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"3d3d18b4-c11c-4572-8a53-e3b87920573d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:23:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":347.49,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"f3e7def5-3a9e-4be9-8ecd-383baad93434","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:23:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":408.92,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"6ac0eb5d-e5f4-4ec8-8598-c0b29dda1dcd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:23:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":454.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"e1136b04-3b88-4d44-a4ca-5ba5cae5392e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:23:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":422.6,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"dd33812c-3de3-4f71-aa9f-2f29050ade22","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:23:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Go to Dashboard","name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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/finance/payment-methods","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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/finance/payment-methods","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":35.56,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b67e5d7d-8810-444a-87d4-c98b120c0f17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:23:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":135.78,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"164fa343-8b3f-41dd-a794-798faa67e3c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:23:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":2151.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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/mpesa-config"},"durationMs":2152.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":"/communications/sms/settings"},"durationMs":2153.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":"/dashboard/recent-activities"},"durationMs":2239.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":2240.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":"/communications/whatsapp/status"},"durationMs":2379.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:23: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":31.23,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d189f267-e529-407c-bc54-cf025930263c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:23:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:24:00"}
{"durationMs":143.94,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"d8beefe7-879a-4c3c-98c1-bbeec1ca0df4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:24:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1789547023847-228894","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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/guardians","navId":"1789547023847-228894","text":"Guardians","to":"/dashboard/guardians"},"durationMs":224,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":"1789547023847-228894","to":"/dashboard/guardians"},"durationMs":306,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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.92,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"55f24ce9-fb7a-4f9e-9d9e-3c384c705793","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":788.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":17.22,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"05ba2a33-df75-4ee0-9a40-2f6813c86e2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"55595239-7ccf-449f-8e5d-cda3ddee1fd6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:24:28","userId":null}
{"durationMs":1.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"29a05adb-f1e8-454f-b5f9-4f5397cd95aa","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:24:28","userId":null}
{"durationMs":41.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"ebab76e5-1042-4057-b3ed-1bce8514bf5e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:28","userId":null}
{"durationMs":74.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a26d3b3d-8610-4a74-bd49-54448e9b7018","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:24:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e92a8327-fc30-4226-814c-8b95e79649aa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:24:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1062.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":401,"url":"/communication/notifications/unread-count"},"durationMs":1330.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":27.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"59d70873-312c-4c33-aa2b-35e1935a45f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":414.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":418.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":20.6,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"13e06b3e-9f65-4ac4-98bd-4095c406ad7c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.7,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"97acd9eb-c5fb-4f78-89a7-5b26a78f0647","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:24:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.93,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"febbdd17-ec8b-439e-a60e-9276593ff087","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:24:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 11:24:36","url":"/api/v1/guardians?page=1&limit=10&search=m&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":167.99,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=m&includeStudents=true","requestId":"1537fa59-6ba0-4f8b-9986-50f1e373435f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 11:24:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":388.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":"/communication/notifications/unread-count"},"durationMs":418.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":50.32,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f8042387-b01c-499c-9072-b539926faa69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 11:24:37","url":"/api/v1/guardians?page=1&limit=10&search=mr&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.22,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=mr&includeStudents=true","requestId":"0df85925-2b1c-4acd-8683-ac357d09be20","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 11:24:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":560.1,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":500,"url":"/guardians"},"durationMs":446.8,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":14.21,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2a3dcaea-1fea-49ce-b74e-0b734ecd3bde","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 11:24:37","url":"/api/v1/guardians?page=1&limit=10&search=mr&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.36,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=mr&includeStudents=true","requestId":"60ea42b3-960a-4070-9862-fc1029a8a0e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 11:24:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":433.8,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":12.97,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cd59cd0b-2d4e-4033-9bdf-b36f6ec4aa17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Column 'firstName' in where clause is ambiguous","ip":"154.159.237.69","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 Guardian.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async Guardian.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 Guardian.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.service.js:192:45)\n    at async listGuardians (/home/aereuxky/cbcsms-backend/src/modules/guardians/guardians.controller.js:7:47)","timestamp":"2026-09-16 11:24:46","url":"/api/v1/guardians?page=1&limit=10&search=m&includeStudents=true","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":71.27,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&search=m&includeStudents=true","requestId":"bf2f0285-379f-4f70-906e-c1382b87e332","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-16 11:24:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/guardians"},"durationMs":455.7,"event":"API_ERROR","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.2,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6ac1818d-f5f8-41e4-b29a-e2da01888dcc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.13,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"d22bf653-1bf9-4bf9-82f0-4afaea994d56","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:24:50","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":82,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":23.99,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"74dc908e-326e-4699-aa29-6e9de84518df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":8.55,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"0541d4a4-6474-409a-879c-11bfb193c5f0","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:24:53","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":76,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:24: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":34,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5847e448-cd37-4268-8272-d13a8aab7668","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:24:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 11:25: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":null}
{"data":{"from":"/dashboard/guardians","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 11:25: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":null}
{"durationMs":1.87,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"277a4c32-5140-4113-8065-28e81c8fb9ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:00","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:25:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e290f78-294d-42c0-aef3-04aa405d16c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:02","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":18,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 11:25: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":null}
{"durationMs":1.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f7b6e27b-e075-45e7-a702-d4a9dd9fa6e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:03","userId":null}
{"durationMs":820.84,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"01390b7b-cccd-4d70-93a6-52fd73d5fbf3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:03","userId":null}
{"durationMs":42.89,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"dc3dabfc-2f43-4799-9ea2-2b3fee8c51af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:04","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":61.15,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8d17b902-bc23-4e72-88d0-e8f2b384fc74","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:04","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":160.28,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d777d8bf-2e3c-4907-a2e1-e2a1cfe3021e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:04","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":162.77,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9e2d8d2b-6732-4e86-b278-acc78d260449","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:04","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":32.35,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"caada80a-8711-4b34-ba39-fc634a4664a6","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:06","userId":null}
{"durationMs":44.92,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"caab03f2-b7ee-4f7a-bef0-0984628a6d47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":75.19,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"4d461e89-ca98-45ca-8739-43f6441fd84d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":70.59,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"107e2cf9-6c9f-4e9f-bda9-3111c30338d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":78.16,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b836bd44-894a-49c2-93ad-631b4792aa5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":291.74,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"39016d10-a9c7-44d4-b81c-0f88575713d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":340.54,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"02fe128c-d4a3-4878-91cf-45954d5db8fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":474.43,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"f9a960d0-f7e5-4d89-8e81-4218f66c4a58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":487.23,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"bd7bd79d-3aea-4414-b148-73ae7813c34e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1305.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:25: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:25: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:25: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:25: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:25: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":475,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:25: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":10.65,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"66895658-1628-4d9b-a57a-64c2b5f11e2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:10","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":56.83,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"ce10548b-2d55-429e-b68d-bf6aedb9d94f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:25:11","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":68.15,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","requestId":"0f7ab677-ab2b-47f3-a80d-282ac4f9024e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:11","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":698.5,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":848.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":850.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":2188.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":2199.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":2211.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":2941,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":2577,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":2755.3,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":2699.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":2826.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"href":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","navId":"1789547067611-255464","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","href":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","navId":"1789547067611-255464","text":"Fee PaymentsDue","to":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees"},"durationMs":3283,"event":"NAV_PATH_CHANGE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","navId":"1789547067611-255464","to":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees"},"durationMs":3283,"event":"NAV_STALL","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"from":"/guardian","navId":"1789547067611-255464","to":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees"},"durationMs":3325,"event":"NAV_RENDER","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":437.9,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees"},"durationMs":443,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":12.46,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"43da9e9b-aaf0-43be-b2a0-4a3c62ec39c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:13","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":90.73,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"b9c3863e-16d2-4c3b-8085-1bb68e3d8240","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:35","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"id":null,"label":"Pay Outstanding Balance","name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:25: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":13.56,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"96de1ad3-7101-4a8c-a609-f22330d314a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:35","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":1417.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:25: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":12.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f276b814-2430-4508-88b0-a1291ac17e30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:25:36","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:26:00"}
{"durationMs":37.15,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"dd7d686b-d68e-4659-b012-5c57cd93922f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:26:05","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":54.55,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b4c021e1-f368-4f39-8492-b2b50a9bc690","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:26:05","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1299.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1314,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":7.36,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"03640649-0867-422a-8a04-8e7a3d4f3b17","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:07","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"amount":10000,"feeItemIds":["02cc042d-73ae-44e9-82a2-e658d02e9246"],"guardianId":"11173a56-bfe7-43df-a183-ee09d398adfd","invoiceBalance":43790.5,"invoiceId":"55880db7-38ab-416c-b871-5d6ce3434527","level":"info","message":"[Guardian Payment] Initiating M-Pesa payment","service":"cbc-sms","studentId":"0bc16824-0baa-4dc8-b7f1-db6540b2b399","timestamp":"2026-09-16 11:26:18"}
{"bankAccount":"***6152","bankName":"KCB Bank","bankPaybill":"522522","level":"info","message":"[Guardian Payment] Bank C2B direct settlement configured","service":"cbc-sms","timestamp":"2026-09-16 11:26:18"}
{"data":{"id":null,"label":"Pay KES 10,000 via M-Pesa STK","name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":5.93,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a21fad3e-76c5-4bcb-968e-d60f1d74c685","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:18","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"checkoutRequestId":"ws_CO_16092026112615968118350794","guardianId":"11173a56-bfe7-43df-a183-ee09d398adfd","level":"info","message":"[Guardian Payment] STK Push initiated successfully","requestId":"b0590cdf-9861-46b2-a604-8b9d2f6cf1d1","service":"cbc-sms","timestamp":"2026-09-16 11:26:19"}
{"durationMs":1913.51,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/pay-mpesa","requestId":"3bdfa118-5698-4d30-aeba-532cd9a1d64b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:19","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"POST","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/pay-mpesa"},"durationMs":2304.7,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":6.78,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b7cda686-1e5d-4198-8b99-6ff30bd0125e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:21","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":40.37,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794","requestId":"8fa29733-9a27-4663-bbbc-17835bcd4f2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:22","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794"},"durationMs":485.1,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":5,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"19784682-bc3d-4bb9-bcb9-04ec1684b98d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:23","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":48.71,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794","requestId":"9017e515-d9e4-4397-aedf-a045a9adbe95","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:26:24","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794"},"durationMs":463.2,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":9.5,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6ecd24e-9fe8-4924-a282-642043448e4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:25","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":52.23,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794","requestId":"b52cb9be-3ae5-4d44-9190-0d720f7f7d90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:26:26","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794"},"durationMs":753.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":10.23,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64b8533d-6a31-4f14-bda2-5784b0039d1a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:28","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":47.94,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794","requestId":"2610f067-9bdb-40e4-90e6-6982a3d980d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:26:28","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794"},"durationMs":704.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":6.9,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"48618838-e39d-441b-bb0c-738a49174a8c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:30","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":36.29,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794","requestId":"232120d4-4bd2-46e7-9c3b-5e0f8b8d46dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:26:30","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":35.12,"ip":"196.201.212.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/mpesa/callback","requestId":"a8fe4504-9567-43b3-9f5e-559f043d3b11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:31","userId":null}
{"data":{"method":"GET","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794"},"durationMs":996.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":5.46,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b8ebce49-2704-4fdf-a8f0-422a5ffaa4c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:32","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":32.31,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794","requestId":"0a119578-b2b3-4e77-bfef-53bc4d4e2529","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:34","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":48.29,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794","requestId":"e17d7281-adb7-4751-8b6d-d3d65fe1c776","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:26:34","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794"},"durationMs":2382,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees/payment-status/ws_CO_16092026112615968118350794"},"durationMs":840.6,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":19.93,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b558700f-aa89-45e7-afb3-f369eddcd6e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:35","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/0bc16824-0baa-4dc8-b7f1-db6540b2b399/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:26: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":8.93,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"58a02155-b3a4-48c7-9bb3-8d151b58d6ae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:26:39","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:27:00"}
{"durationMs":63.83,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"dbdf50cc-2ea3-47e5-bd39-610bc4cf80ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:27:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":30.12,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ecc1acf6-9d37-4bc2-af24-8cd57da34a03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:27:06","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":569.8,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":639.4,"event":"API_RESPONSE","ip":"154.159.237.69","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11: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":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"durationMs":12.27,"ip":"154.159.237.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9e65b319-dd34-4c9b-a753-eb401ee288f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:27:07","userId":"859088fa-6093-4a16-ad21-b2ca91431f44"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:30:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6cd4f873-be87-450a-b1ba-198a995ca094","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:35:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d606f1e6-0355-4635-944d-247ec34c0b68","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:40:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"996acb87-bb55-40bc-830c-8095462c3970","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:45:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ada113d3-edb0-4c93-af0f-c1ba4d0e9bac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:50:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b2fe0a4-dd68-48cf-bc66-c9debae0367e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:54:00"}
{"durationMs":1.94,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f028fa63-1663-484f-9fcb-628b228d69c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":4.46,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"3e29f554-8896-44e1-9e92-f88865428c79","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":3.32,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1d17dade-d4b7-4998-b5b4-dded756fc363","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":1.47,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"a789dda3-5216-451c-9232-c6109eba4b32","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":1.89,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4b3b163d-cd82-4c70-8c10-528ab587b49b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":1.62,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b69118ed-9d25-4f07-b936-ac5aa6a9e9e9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":2.13,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"576a3972-d38c-4e5a-a4cb-3f21a5a2e34b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":1.49,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"36c2b906-569d-47f7-9e1e-692fb2139db2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":1.98,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"d4f3a188-3706-4d49-8b72-7f429b27edae","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":2.66,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"606ebbe2-aebb-4467-ba3f-4da13bfb64d9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":3.49,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"a24cdee6-bd8b-45e6-86e7-1ef91fcda691","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":4.09,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c5764f25-2bbe-4879-8a44-b7efe893d93b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 11:54:19","userId":null}
{"durationMs":26.59,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"49f1a85c-c8d3-40d0-b9e3-f8543ac07183","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:54:20","userId":null}
{"durationMs":485.12,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"fe2440cb-4b58-45ec-98d2-9a9ca2635f81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":507.36,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"df7de613-4c08-45a6-a38e-7fd61b7df1c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:54:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":544.58,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"c560b160-9549-4de8-b0c8-3344a8f56107","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:54:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":380.5,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/academics/subjects"},"durationMs":388.3,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/academics/streams"},"durationMs":390.4,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":393.9,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/academics/classes"},"durationMs":392.3,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/assessments/teacher-assignments"},"durationMs":393,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":394.5,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/assessments"},"durationMs":396.4,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/academics/years"},"durationMs":426.3,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":427.6,"event":"API_ERROR","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.45,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c61d1556-fec3-4ea7-84e7-efb004f7acc1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:54:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":592.64,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8083e248-4ec3-46c4-902c-64ca7008df6c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":609.51,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"5167bb60-fe43-46ed-b764-4269c4f1103c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:54:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":629.14,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"37b4328d-e7dd-441d-959b-2e4e6c8dc194","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":739.52,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"3ed7e826-bcb5-422f-a1e0-d288ec18f8ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":742.54,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c90efca3-9ce7-47dd-ad98-839b36d1d859","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":737.51,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"390ccc1a-653d-4ba0-ba10-1892b8c8503e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":757.24,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"fd868f1c-116f-47ad-b15e-f142c2da4cf7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.29,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"a61f748b-3243-44e5-b137-74fbdb9428d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":103.5,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments?academicYearId=cmp8gtpm300d48bcnc9mas3i7&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"413039a2-3663-4659-ac57-07a839f0d8d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 11:54:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":86.4,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results","requestId":"c4760c50-fba7-42a2-92f3-5a43f1537ab9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:54:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":812.6,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":831.8,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":866.2,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":933.3,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":935,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":1050.9,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":1118.6,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1126.8,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":1132.3,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":1135.1,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":495,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":500.5,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results"},"durationMs":419.9,"event":"API_RESPONSE","ip":"154.159.237.64","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 11:54:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.21,"ip":"154.159.237.64","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"acdc1a5c-af96-4e95-a5cf-3b71473021c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:54:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 11:55:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dafa78cc-0db3-49c5-af41-deb5e6ff7fc4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:00:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2453b5bc-c386-4938-bd3a-9f757c985579","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:05:00","totalConnections":1}
{"durationMs":1.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d8b52aa-532f-4b8a-9169-f02ae3bdf146","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:10:00","totalConnections":1}
{"durationMs":1.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d9a0aec-9eb4-463d-8cb0-35e71aaaec01","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:15:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b1732338-38d2-4405-ae0f-af96d9c8badd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:20:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ac96d03-1373-4147-80f1-a8d5a2b31e8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:25:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b38cde07-45c1-4c69-92b7-6d14b098ae26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:30:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2414b12c-34c4-4f4a-b898-e26d09612be8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:35:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c67724e-a24e-4d2f-a6dc-e4db3989a4f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:38:00"}
{"durationMs":1.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46af742d-4ccd-4e1d-a058-84a8a09af679","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:42","userId":null}
{"durationMs":33.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"f29cb7b8-f966-4d19-882c-157b6c8b28d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:43","userId":null}
{"durationMs":2.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b4b05e65-aea4-4fa9-afef-5cecb1e8c63a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:38:43","userId":null}
{"durationMs":2.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9e6f732a-8651-4542-9743-4d56ea6c039d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:38:43","userId":null}
{"durationMs":3.6,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7d57c6a6-6016-4e82-88cc-71c8d30354d3","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:38:43","userId":null}
{"durationMs":1.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"a6cea184-cf0a-4146-9abc-cbccaadc370f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:38:43","userId":null}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 12:38: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":null}
{"durationMs":1.92,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"019f98ca-4e7a-4712-894c-c5037c690112","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:44","userId":null}
{"durationMs":26.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"0b319a80-8535-4d2f-afb4-01ff4f8eedb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:44","userId":null}
{"durationMs":329.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"c03b61be-62f3-4f72-ba0b-c44c6bfc1442","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":474.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3929728d-d743-4ca5-9bc6-7911a261ec15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":532.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3458a4a5-5f4f-4362-a9a8-81ebed17bf0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":529,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"385edead-e2c6-4c0c-be70-8934a9dee7ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1337.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:38: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":401,"url":"/communication/notifications/unread-count"},"durationMs":1413.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:38: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":401,"url":"/communication/notifications/inbox-count"},"durationMs":1423.6,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:38: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":401,"url":"/communication/notifications"},"durationMs":1428.1,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:38: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":21.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"53900dbf-7298-4934-96ae-2b794a77dd8e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":633.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"0ce676dc-3e02-4243-89fb-c4cfbf7c3e2f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":507.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"1f5e8fca-dee4-4ffe-9ae2-1d62f8cc73f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":650.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"0e46a413-7e33-4541-9545-6da764d36c08","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":682.14,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"e29dd82f-05bb-4a94-a6ca-5e2926af1ade","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":332.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"66515790-1946-438b-b0bc-71237efab353","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":619.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"38ab872a-dd1d-43e7-94c9-0b94d1b7418d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":534.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"a066c51f-2326-4b7a-a6fe-7add3e6c95ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":646.92,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"cbd72e5a-63b1-4403-8eb3-be814da877fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":2711.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:38: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":11754.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:38: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":11755.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:38: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":11756.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:38: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":19.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cea39645-529e-4d3e-b04f-52f989f383cf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:38:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:39:00"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1013,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1891.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1944.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1951.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1952.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"224f184f-d8d8-4ac1-9b02-7f7448efe750","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:39:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":2009.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:39: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":"/dashboard/grade-distribution"},"durationMs":2010.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:39: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":"/communications/sms/settings"},"durationMs":2010.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:39: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":18.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a606562d-ab65-4dbd-b3a9-6b4b2ad7d149","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:39:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:40:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58ef4f39-522c-4449-903d-068941c67670","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:40:02","userId":null}
{"data":{"from":"/","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:40: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":28.66,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93d4965d-137a-461a-9b86-674901402081","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:40:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:45:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e0c6c1b-4909-4e5a-8b16-06af12852558","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:49:00"}
{"durationMs":158.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"8b7bc698-6934-4844-9973-a7e4520dcdbd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:49:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":238.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4d38c9cb-1456-4f74-b7d7-ee195ca04ccd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 12:49:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":251.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"019d65c9-5860-4d05-bc32-7292780c0821","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 12:49:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":18887.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:49: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":18889,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:49: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":18927.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:49: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":18.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7dbd7222-563a-4b24-b371-6c915cbdd08c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:49:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:50:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6895e089-eeb1-4e43-8324-69a6219ca52e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:52:00"}
{"durationMs":1.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f09371f4-dfde-4e26-a596-ffeb21c69d95","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":3.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"6bbed4e6-8376-45d4-90ae-6aeedad39693","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":4.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"516ed3d5-f289-4e4b-8204-0f2ec20e8416","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":5.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/departments/list?type=academic","requestId":"b9f2621e-a981-465e-98d1-dd11c58b37ea","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":2.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"51ad1bbb-dce9-4fbe-bc4c-4cecd9ea3e59","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":2.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"33cdd5cb-2dc4-4725-8d70-e5546fc6f786","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":3.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"d7e159bd-4c63-41a9-a077-e9cc06c8e6f2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":2.02,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b9d27e67-6752-46fe-9bd5-9090c9d3ed6c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":1.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ce948dad-1fc2-4ae2-a227-86355db97b10","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":1.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fc01c9e2-4283-4500-923a-cb11be614ce0","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 12:52:56","userId":null}
{"durationMs":36.73,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"ab974d9a-25e6-4b1d-baa6-dbec69d822a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:52:57","userId":null}
{"durationMs":367.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/departments/list?type=academic","requestId":"74577703-6c84-42b4-a707-b379fc2b366e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:52:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/academics/grade-levels"},"durationMs":436.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/staff/departments/list"},"durationMs":451.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":460.4,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/academics/subjects"},"durationMs":464.3,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/academics/teacher-assignments"},"durationMs":466.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":471.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":474,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":476.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":174.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"59d3e552-12a6-432e-b4ca-ecb379940884","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:52:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":584.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"6c2bf468-b1ce-4090-98b3-0098952d689e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:52:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":584.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"29fe2642-fc9e-4c5f-b902-f3b64c15aba2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:52:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":494.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"a2dee5b2-5094-42b2-839f-ef477bde40d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 12:52:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":566.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"44278fb2-fac2-4482-a102-02183becf290","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:52:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":510.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ebb426ba-9107-4603-8fff-b29d87b8e7c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 12:52:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":611.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"3bec5989-cc73-4328-b7ae-a038bf873b8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 12:52:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":520.06,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"02990c9b-b4ce-466e-9bd2-25c4cf151b6a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 12:52:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff/departments/list"},"durationMs":692.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":998.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1480.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1890.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1893.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1894.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1900.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/teacher-assignments"},"durationMs":1904.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 12:52: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c1e528bd-93ce-48cb-a4d1-0e8586b4197a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:52:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 12:55:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84045fc3-d5b7-46c4-8f6a-03ed8e93ff53","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 12:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:00:00","totalConnections":1}
{"durationMs":1.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a2ae5d2-a314-4b85-a844-3dd6006d79f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9648e237-3793-4181-becc-8f194928495f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:10:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"230e8cb7-b114-4fc6-bb40-3eb2ca37d6fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:15:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0857b81f-54cd-43cb-bcae-83e17432c83a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:18:00"}
{"durationMs":3.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"5f7e02b0-488f-4a39-85bc-21dc2fb6c675","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:18:36","userId":null}
{"durationMs":1.72,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ffb2a91c-c0b7-4896-8f3c-d2e81be58893","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:18:36","userId":null}
{"durationMs":2.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b30d750f-494c-4570-a6b5-ab6604d9cadc","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:18:36","userId":null}
{"durationMs":43.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"7b0d5fc8-d635-44b7-88d1-53683c63f9cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:18:36","userId":null}
{"durationMs":132.92,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0479882d-ef8a-4510-b93c-ef4cd5081afb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:18:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":203.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"2fcf52c2-57ac-4b04-bf84-864b5c77b28c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:18:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":285.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fecf423f-42ef-4b6e-89e0-e22f54f62a8e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:18:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":1009.6,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:18: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":401,"url":"/communication/notifications/inbox-count"},"durationMs":1017.6,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:18: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":401,"url":"/communication/notifications/unread-count"},"durationMs":1020.1,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:18: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":73.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3e021172-9692-469e-a517-6cc2fdc12d41","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:18:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":483.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:18: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":554.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:18: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":"/communication/notifications/unread-count"},"durationMs":635.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:18: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":20.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6f90b1bb-2c6f-4545-a689-aa2ec358af74","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:18:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:20:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18537ba5-1e1d-4892-8f13-e5dbfb47767e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:20:02","userId":null}
{"durationMs":1.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8afa7d2e-6a0d-475c-a7d9-c0b9e56496ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:20:27","userId":null}
{"durationMs":3.99,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"5f6e809d-ec72-4f35-9559-03f6cecfe7a6","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:20:27","userId":null}
{"durationMs":98.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"16aee92e-fd6a-49ca-b1c1-f8c6be373d4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":379.58,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d9a2e9fc-c6d0-4d59-a436-10651fde431c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":380.35,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"85ef7ace-0112-4fe9-8469-5a88d0923113","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":390.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"327440ec-2c5c-41bd-877a-169c3ec27ff3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":200.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"4b2fcb47-7762-4929-9c9b-904fbb0ca466","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":380.97,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"ab4f7d43-29a1-4c3f-ada7-17e3af3c15b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":397.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"80b7a70e-b6e6-4563-b9ac-cf6e8a216fd9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":430.99,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"cad35b1d-ad50-4d98-9dad-b727f963b323","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":401.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"14df4e69-ae0d-4fc0-a758-a63c79ac71f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":442.6,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"7352165e-80cd-4391-a97a-503c028b0efa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":435.44,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"ff2c0815-247b-41e7-a346-7a3f9332e116","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":443.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"17ad4278-6ffb-4cbf-bbd7-a7515f33bc3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:20:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/school/enabled-modules"},"durationMs":432.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/communication/notifications/inbox-count"},"durationMs":717.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/communication/notifications"},"durationMs":733.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/communication/notifications/unread-count"},"durationMs":744.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/school/mpesa-config"},"durationMs":692.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/dashboard/recent-activities"},"durationMs":796.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/communications/sms/settings"},"durationMs":812.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/dashboard/revenue-trend"},"durationMs":825.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/dashboard/attendance-trend"},"durationMs":888.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/communications/whatsapp/status"},"durationMs":889.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/dashboard/grade-distribution"},"durationMs":890.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":"/dashboard/stats"},"durationMs":891.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:20: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":24.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"977274c7-484d-426a-b326-9c852b96e284","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:20:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:24:00"}
{"durationMs":2.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44a0a547-efda-4154-aae3-481f99fbdfac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:41","userId":null}
{"durationMs":4.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"6652ee2f-c50e-43e5-a125-b2028abdfa6b","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:24:41","userId":null}
{"durationMs":3.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c1477d3e-e703-440b-b6a1-a7dc19500051","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":2.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"2d11870d-9665-43dd-86cc-7858f16d6291","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":2.66,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e2121e88-349b-4e04-85b6-0e08bdfeb17f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":1.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"dd314be7-b9fd-46f1-a96a-d82bcc357478","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":35.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"9de3eec6-e4d5-4978-b112-dced0cb9ed55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":3.44,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"640c2602-12c4-4661-adcc-1a70cc223d0b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":4.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"c6da00b4-9f8b-4a28-bf9e-157ae6ede7b4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":4.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"119414ff-a5f1-4277-baff-8c7d623fa24e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":4.77,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"03cef141-3c12-437a-8372-3e1efdb1443a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":1.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"d933a1b7-3631-423f-91ed-c3e31225c73d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":8.95,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"a5a64a5a-0952-47f4-b33a-a9155f7ae16d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":8.35,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"f397b131-9ffd-4c2b-b280-c19b9ab6ede5","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":7.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"cac0c022-91de-41ea-92eb-2670418a3d26","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:24:42","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":441.4,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":792.4,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":796.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:24: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":801.4,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:24: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":null}
{"durationMs":2.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7f896fee-dc81-4532-bb24-60dae17a8e7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:42","userId":null}
{"durationMs":103.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"c5c202d5-aab2-4503-a7f4-8337210954c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:43","userId":null}
{"durationMs":123.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"cf68c2b7-eff8-4648-b196-da5a67a1eff0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:24:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":327.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"541d78f2-ab0b-49cc-b5ee-b8b1290c3012","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:24:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":347.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"d98a4489-69bb-40aa-9536-60881ff40f44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:24:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":349.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"73085963-23ec-416b-9c3d-f070175d1288","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:24:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":135.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"642a020e-868d-432d-82b9-790978381393","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:24:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":252.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"06c43817-996b-4397-86e1-43b54a1de356","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:24:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":178.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"48054ae5-8ba6-451d-bff8-5bdbfda1cc07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:24:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":263.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"814c7fef-c7e5-40a8-9ef3-67c777cfc950","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":281.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"bded713b-cf48-4362-8b8a-23f9bb5e8a48","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":221.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"8405c122-d05a-460b-9553-9e10466b0b51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":288.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"74cc0d56-0361-45ff-a55d-5ece28356db2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":257.72,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"140ddc58-ff54-4e99-88eb-480b614c471e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":758.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":763.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":765.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":770.1,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":772.3,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":774.4,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":776.5,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":780.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":954.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":959.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1010.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1012.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1524e22d-a76c-49bb-a494-e5970e49b456","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":832.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":963.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1006.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1008.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1149.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1684,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1687.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1689.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:24: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7386d9ad-0061-4a06-b679-9184e40efb03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:24:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:25:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afd4bb48-9f3c-471c-91f8-4646746921b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:30:00","totalConnections":1}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1416a03a-942a-4c6a-82e4-9a2cec9ec7ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:35:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1402401f-4d8a-41ac-a49d-7bb4250a3a47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:36:00"}
{"durationMs":3.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e2fd44dc-816e-478c-a2f5-04fb3baea5fa","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:36:29","userId":null}
{"durationMs":1.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"13ced6b8-3ac4-47c8-91f8-1b3eb9da41f3","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:36:29","userId":null}
{"durationMs":1.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"65c733f7-6aac-4f0a-a2ea-48b252237e2f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:36:29","userId":null}
{"durationMs":38.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"2d98bb84-4f74-43a9-a8a8-961a91074fc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:36:31","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":17528.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:36: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}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":17487.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:36: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}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":17489.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:36: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.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"407f1280-065f-4ccf-be7e-1ec1b20ee0fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:36:31","userId":null}
{"durationMs":437.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"97ccb136-6136-4406-8cba-0d0adaee7244","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:36:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":441.66,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7fdcbc51-d8cc-4e40-9c18-4a51c8e00b01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:36:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":446.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"940bb6c7-e9c8-4296-9100-f1a0e1b6e95d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:36:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":771.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:36: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":775.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:36: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":783,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:36: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.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9163eeec-d107-4746-9895-b63b7d423f7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:36:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789554894407-824793","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:36: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":15.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"90a0d470-5d62-48de-a448-e00bae228647","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:36:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789554898622-277904","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:36: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":{"href":"/dashboard/academics","navId":"1789554902198-24849","text":"Grades & Streams"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:36: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":14.73,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7b9b1d52-a55a-41a2-8bd3-a6f258a38345","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:36:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:37:00"}
{"durationMs":0.99,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14d9a7b7-7d8c-47de-8a3b-d996db291460","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:37:14","userId":null}
{"durationMs":2.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"b0e4b22a-9bc9-464d-bb69-db31e0c04102","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:37:36","userId":null}
{"durationMs":156.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"71f3d1a7-a168-4883-b40b-a5caab82659d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:37:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":275.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"47f788b4-3f2d-435c-aa42-4a09afdc232b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:37:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":345.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"444213e5-28d4-4354-bcc6-45eff3023e9f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:37:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":327.02,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5fb86861-da68-4621-aeff-e9a81522b720","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:37:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":367.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"81d6a673-669e-492b-982c-dda4d53c2889","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:37:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":504.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:37: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/grade-levels"},"durationMs":700.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:37: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":"/communication/notifications/inbox-count"},"durationMs":819.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:37: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":"/communication/notifications/unread-count"},"durationMs":851.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:37: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":"/communication/notifications"},"durationMs":850.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:37: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":20.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a60a85f-fea4-46c0-92fd-4234b6ef24a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:37:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:38:00"}
{"data":{"href":"/dashboard/guardians","navId":"1789554991343-145186","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":37.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"44b58f49-991a-4ce7-98fe-3362c8b4268a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":106.46,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"bece476c-e8c4-4135-9e25-12a809dbec5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","href":"/dashboard/guardians","navId":"1789554991343-145186","text":"Guardians","to":"/dashboard/guardians"},"durationMs":1169,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":{"from":"/dashboard/academics","navId":"1789554991343-145186","to":"/dashboard/guardians"},"durationMs":1169,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":{"from":"/dashboard/academics","navId":"1789554991343-145186","to":"/dashboard/guardians"},"durationMs":1211,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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.41,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2a606b4e-ef6e-4a11-901b-e0b7b7ea804b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":834.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":30.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"015f4b15-1a0f-4817-8329-92b2689bf919","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":150.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"15e5bbc0-1016-40e5-a6e3-00346e64b4e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:38:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"1660f169-d4bb-4c6a-a3c6-d88e5cc3bcef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1789555011782-685272","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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/guardians","href":"/dashboard/students","navId":"1789555011782-685272","text":"Students","to":"/dashboard/students"},"durationMs":706,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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/guardians","navId":"1789555011782-685272","to":"/dashboard/students"},"durationMs":706,"event":"NAV_STALL","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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/guardians","navId":"1789555011782-685272","to":"/dashboard/students"},"durationMs":755,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":183.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"092f50da-faeb-4c32-8890-05e0b14f3a02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":414.07,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1e6622a5-896a-4ce2-bafd-289996fc8f48","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:38:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":362.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"6f60de6a-2458-417d-903e-923925cafb19","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":438.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"ff8bad3f-7067-4989-8a35-8510d38ff93f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":379.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"59d8e1ef-5d0d-4a62-960d-8b773850aaf7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":508.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":"/academics/streams"},"durationMs":833.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":892.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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.64,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4ecf8be-7d11-4783-bc41-cbdaad31275f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1283.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":{"id":null,"label":"Add Student","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":"/students"},"durationMs":1908.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":"/students/stats"},"durationMs":1909.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":19.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1b91ef01-1cd4-44e0-a603-c546d30aa9b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.6,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"00bb9dcf-f7e2-47b4-9a3f-da9acc769578","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"c332f16e-29c6-46ff-9805-80a690f4c830","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":71.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/next-admission-number","requestId":"f4074ee3-4828-4ddb-82b5-26eff98cd67f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":null,"navId":null,"text":null,"to":"/dashboard/students/new"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":null,"to":"/dashboard/students/new"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":403.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":718,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/next-admission-number"},"durationMs":736.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.49,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"70a56fc5-1e8f-479a-b8f1-35e8dea96815","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.18,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/next-admission-number","requestId":"b460ff9c-4618-49e7-8446-cca6699d77a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/next-admission-number","requestId":"4f32c2bd-98f2-486e-98eb-69c487a36460","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:38:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Autofill Next","name":null,"type":"button"},"durationMs":3,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":"/students/next-admission-number"},"durationMs":417,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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":{"id":null,"label":"Autofill Next","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 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.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"69b8102a-6bed-478b-a30b-9e4da043fb39","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/next-admission-number"},"durationMs":1517.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:38: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":26.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"54eb182b-eee5-4b6b-ac97-960d0874771c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:38:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:39:00"}
{"data":{"id":null,"label":"Select Date of Birth","name":null,"type":"button"},"durationMs":84,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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":26.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"771e8b47-e9a3-4944-8484-ea4d44dd2f36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"2012","name":null,"type":"button"},"durationMs":25,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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":30.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b3b68dd7-2790-439f-88d3-e3ae393d15de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select Date of Birth","name":null,"type":"button"},"durationMs":61,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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":20.84,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ad06f287-44cd-40e9-a41c-9ffc8251c2a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"11","name":"day","type":"button"},"durationMs":40,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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":26.45,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"82865daa-d580-4661-bd39-a0fb8a00e72b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Next: Academic & Guardians","name":null,"type":"button"},"durationMs":45,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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":28.39,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ede167da-32e2-4777-adf2-4d3c0dd4ac26","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.47,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpoj00dq8bcn0szz5jea","requestId":"24a63798-ec89-4c82-b6be-c8bd783432e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":364,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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":14.97,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f8ca3477-f550-4a8f-a362-b913dd34df1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Guardian","name":null,"type":"button"},"durationMs":43,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8526e821-2496-402e-a2cd-2bcaf7e98a92","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":260.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1ac4210e-ce81-4c5f-96ff-cff24d7bf90c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:39:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":255.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"80c0772b-d76a-4f3b-a09e-93bbe9101edc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:39:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":625.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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":"/communication/notifications/inbox-count"},"durationMs":1049.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:39: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.3,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4612954c-bef2-4a7a-9952-14cce5132b0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:39:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:40:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ba33e7b-7acf-4752-b8de-2ff6b02f3757","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:01","userId":null}
{"durationMs":5.22,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/services/meal-plans","requestId":"fd81e150-72bc-4ba0-b5c7-939d1376d0f2","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-16 13:40:03","userId":null}
{"durationMs":1.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/services/transport-routes","requestId":"006942e1-4def-4c8c-8c9b-ff72213c60b8","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-16 13:40:03","userId":null}
{"durationMs":160.56,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/fee-structures","requestId":"2cc978ff-a218-48ed-8154-bf14c202ed1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":174.01,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/items","requestId":"9bc4b17d-ca80-4a63-841f-395b384743bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Next: Services & Finalize","name":null,"type":"button"},"durationMs":36,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":404,"url":"/services/meal-plans"},"durationMs":336.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":404,"url":"/services/transport-routes"},"durationMs":365.3,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":26.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7f551052-aecb-4c73-aedb-fcaa27c26926","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance/fee-structures"},"durationMs":1095.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":"/uniforms/items"},"durationMs":1102.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":15.92,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9cabb17a-fd3c-4562-a09b-da43305a7d34","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":312.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/students","requestId":"e6334769-bfb9-4a8a-a60b-9aef0880cdbd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":201,"timestamp":"2026-09-16 13:40:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/next-admission-number","requestId":"c649b474-8fc2-40e5-aa4a-a1ba1a1104d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":80.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"22df760f-8c62-442b-b12a-0c184cfbedae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Complete Registration","name":null,"type":"submit"},"durationMs":9,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":"POST","status":201,"url":"/students"},"durationMs":647.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":{"from":"/dashboard/students/new","href":null,"navId":null,"text":null,"to":"/dashboard/students"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":{"from":"/dashboard/students/new","navId":null,"to":"/dashboard/students"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":30.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cd3a4b84-5502-461d-9780-8cf99855e7e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":190.38,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"abae0415-321c-4981-8041-7872450b1873","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":322.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"8e7ba252-87af-4b74-8fd4-c3c968497141","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":300.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"4b749fdf-6e5d-45f6-ba3d-f12cff4b6b47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/next-admission-number"},"durationMs":402.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":"/academics/streams"},"durationMs":408.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":"/academics/classes"},"durationMs":714.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":"/students"},"durationMs":1026.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":"/students/stats"},"durationMs":1061.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":17.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ba56160f-c36e-4fdc-bccc-6f7af32e4796","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":160.24,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"08931c68-089e-48b4-b6be-a4573c94396f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:40:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":151.13,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1be4729a-5f24-4dd5-b08b-761c33febe96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:40:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":494.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":"/communication/notifications/inbox-count"},"durationMs":494.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:40: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":24.18,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dcb4eec0-9f52-45b1-8204-ed42ea1f395e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:40:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:41:00"}
{"durationMs":1.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebaefb6f-ca04-4f6e-b1d8-7711f27a67d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:08","userId":null}
{"durationMs":2.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"f2d6c1cb-4bda-407e-9280-913b672e2aeb","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:08","userId":null}
{"durationMs":3.92,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"54dd1913-b3c3-473d-976c-000b40d7a7c1","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:08","userId":null}
{"durationMs":3.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e1bff05f-3530-4337-945d-e5f8db102d91","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:08","userId":null}
{"durationMs":8.73,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e9c1b8cd-b162-4002-b95e-fa42790391de","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:08","userId":null}
{"durationMs":10.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e46c4969-8548-4bcb-92ad-f62955c9eaaa","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:08","userId":null}
{"durationMs":5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"5d8c26b4-8f3f-4388-9fe5-d913afd8dd42","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":3.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"a705ad81-ef5c-4313-9f37-d911d48f076f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":4.32,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"8c8737f5-f953-456c-a314-184736b0f17b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":1.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"2207b29c-3936-4259-9ed8-3f9e7b53f813","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":1.18,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"9bd74428-803b-479a-acc9-cc2c597c713c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":2.11,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"c24d1fe0-33ee-4e63-950a-06380bb077fe","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":2.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"7b90a18a-ae2f-4781-97fc-f849ec8487d2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":2.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a03f94fd-99b1-4cef-92ea-273d89ec5617","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":50.22,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"6d249266-caae-4dfb-8444-cc0ae6b7aee3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:09","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":390.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":394.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":395.9,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":397.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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":null}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":353.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":356.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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":null}
{"durationMs":2.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2860d9e7-5d2b-4892-aecb-1cc05c5ea6d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:09","userId":null}
{"durationMs":499.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"142e6ade-13f4-463f-b9fc-1bec623604e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":491.85,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"765addf4-1423-433a-9ced-e8f7c041f3bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":366.4,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":368.5,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":371.3,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":377.1,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":400.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":404.2,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":74.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e225fd3-e8fe-45b0-8f27-1a89a559f62a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":729.13,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"6b8604ea-f4b3-4056-be38-cb37090f9b94","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":819.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"7c6c1150-9650-46d9-867f-2518aefcde86","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":826.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fb124dc5-338d-49cc-9261-a853b713a8c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":828.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6f80e1dd-946b-4277-bb32-5a45aaff82e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":828.97,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"257b66df-2175-47ec-9135-a1ed0d5a7625","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":733.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"2b1c68af-cda1-496c-83ce-dcac16a91f11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":825.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"7e8a3e21-d8b8-4554-88c9-51b483c6030d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":864.63,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"55d8b744-cf7e-4b52-a0b4-257b8b1aa37f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":704.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"1c659e4d-5977-4104-a3c0-47e131a38b32","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":897.76,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"cba93d5e-8a86-4d08-b1d8-db3406fd7e93","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":942.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":964.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1120,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1178.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1180.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1182.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1183.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1198.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1247.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1249.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1275.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1276.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.79,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cc7e547e-9a33-4d09-9daf-c61ec4cb4466","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.69,"ip":"172.253.192.126","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0fd7a43-d6ec-4bfa-9209-8240a1fc03f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:13","userId":null}
{"data":{"href":"/dashboard/settings","navId":"1789555268190-245492","text":"Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/settings","navId":"1789555268190-245492","text":"Settings","to":"/dashboard/settings"},"durationMs":459,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1789555268190-245492","to":"/dashboard/settings"},"durationMs":484,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:41: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1b86618f-ef1d-4e4e-a710-7e7f2c81a8d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13: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":"/dashboard/settings","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13: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":1.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d7d3ff1-535e-43a3-a668-40b3a2042633","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:17","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":17,"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-16 13:41: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":null}
{"durationMs":2.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fcffba69-0dd9-4bfa-b060-83de7622adfb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:31","userId":null}
{"body":{"identifier":"robinsonotoch7","password":"[REDACTED]"},"error":"Invalid username or password","ip":"102.0.11.44","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-16 13:41:37","url":"/api/v1/auth/login"}
{"durationMs":615.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"5d6e45ec-27f4-40e9-ab2c-70895d6adbcb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:37","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-16 13: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.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"94b907ef-7bba-4cde-8f32-6128c752f6aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:38","userId":null}
{"durationMs":172.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b9ad1810-fbef-4bf2-b292-c42fadc34399","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":182.26,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"02751d28-2afd-4f54-a0a0-a0893cbc30b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:41:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":970.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13: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":null}
{"durationMs":2.25,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6770eefc-d590-45d4-8fcb-3c5f9b3bf375","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:40","userId":null}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":503.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":505,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13: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":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f929f487-436b-4dcc-b9d3-9badef7dacf5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"identifier":"robinsonotoch7@gmail.com","password":"[REDACTED]"},"error":"Invalid username or password","ip":"102.0.11.44","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-16 13:41:43","url":"/api/v1/auth/login"}
{"durationMs":598.4,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"8d00d79f-25c3-4478-a082-0a9e191dbeb2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:43","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":19,"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-16 13:41:43","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":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8bd7e915-5f5e-463f-8571-5b044890df4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:43","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":951.8,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3248d63d-57b2-47aa-a0c4-93b3db2a17f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:45","userId":null}
{"body":{"identifier":"robinsonotoch7@gmail.com","password":"[REDACTED]"},"error":"Invalid username or password","ip":"102.0.11.44","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-16 13:41:46","url":"/api/v1/auth/login"}
{"durationMs":563.4,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"2f1a450d-bb77-45ca-b3bc-bb347a8829f1","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:41:46","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":18,"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-16 13: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":null}
{"durationMs":1.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"15a69e00-7ef7-461a-a9d9-db469e29042b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:46","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":899.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:41: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.03,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"57f5a387-7bdc-4948-b547-332cd01d28b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:47","userId":null}
{"durationMs":2.58,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0244d8aa-7e8c-42cd-9ca2-ca665fe1f3f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:41:48","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:42:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":22,"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-16 13:42: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.61,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"41bd3ae5-9107-4495-a609-11af0838030b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:42:01","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":25,"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-16 13:42: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":"32b56742-0c03-4601-a76a-0f064217e197","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:42:03","userId":null}
{"body":{"identifier":"robinsonotoch7@gmail.com","password":"[REDACTED]"},"error":"Invalid username or password","ip":"102.0.11.44","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-16 13:42:03","url":"/api/v1/auth/login"}
{"durationMs":633.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"8da10ec4-201a-4275-907e-57c4ce54324c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:42:03","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":2095.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:42: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.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"40f946d7-5f5f-49cf-913a-c077210a96f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:42:04","userId":null}
{"body":{"identifier":"robinsonotoch7@gmail.com","password":"[REDACTED]"},"error":"Invalid username or password","ip":"102.0.11.44","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-16 13:42:35","url":"/api/v1/auth/login"}
{"durationMs":611.92,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"c3f67ed6-1339-423d-9505-7accbc003ae1","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:42:35","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":18,"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-16 13:42: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":null}
{"durationMs":1.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d37792e-9516-4cd6-9251-cbd105c5499d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:42:35","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":962.5,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:42: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":null}
{"durationMs":1.52,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24e8e414-c8b9-42ce-8ad9-34643acfff97","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:42:36","userId":null}
{"durationMs":345.94,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f0cb62d5-d55d-413b-9e86-3f69b4c6373d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:42:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":353.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ecf7fcc4-7330-4210-a16d-fa6f52653ffa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:42:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":678.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:42: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":"/communication/notifications/inbox-count"},"durationMs":679.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:42: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.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d226ec58-a3c9-41a2-9105-8005e2fa0c91","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:42:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:45:00","totalConnections":1}
{"durationMs":2.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fae0010-7825-4edd-b1a1-8373c72e781d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:47:00"}
{"body":{"identifier":"robinsonotoch7@gmail.com","password":"[REDACTED]"},"error":"Invalid username or password","ip":"102.0.11.44","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-16 13:47:45","url":"/api/v1/auth/login"}
{"durationMs":654.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"5df39e88-2ebf-48d3-a6ef-dfa4c56d2eed","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:47:45","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":32,"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-16 13:47: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":null}
{"durationMs":2.05,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7376e1a-7654-44d4-b5e0-336d62e8438d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:47:46","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":994,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:47: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":1.92,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"32f79141-ec8c-4acc-8f7f-c242cfa54c4d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:47:47","userId":null}
{"body":{"identifier":"robinsonotoch7","password":"[REDACTED]"},"error":"Invalid username or password","ip":"102.0.11.44","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-16 13:47:56","url":"/api/v1/auth/login"}
{"durationMs":575.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"0a158db3-82e1-448f-b635-52e688cf8033","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 13:47:56","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":20,"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-16 13:47: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":null}
{"durationMs":0.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aec22901-be66-410a-b4e9-aeb0b1f717ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:47:57","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":914.7,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 13:47: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.5,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"69953cdd-1351-4f4f-bf2f-21dcd09bcca9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:47:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:50:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7c33497-f00b-4ec2-8928-5e60a76ba48a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:51:00"}
{"durationMs":323.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"10238e09-cad1-453a-8233-ea32a7750ee4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:51:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":315.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"424e5896-1ed8-4391-8267-3af1db599c2f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 13:51:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":5679.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:51: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":200,"url":"/communication/notifications/inbox-count"},"durationMs":5622.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 13:51: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":36.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f3b8ad44-20bb-430f-ad2d-0c57aca9df43","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:51:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 13:55:00","totalConnections":1}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7e72ba1-4804-475f-9162-c25c75edaeef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:00:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eba540b2-2abc-47b2-b15c-05ef370a2cbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:00:02","userId":null}
{"durationMs":1.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"abb478c0-8ae7-4989-8254-f5185832a81d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":3.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"a6c0dedc-44b2-41b4-8731-619f198b1ddd","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":2.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"dec88e3a-21f7-48d1-81c6-630401244241","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":3.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ca4f8ac7-208c-43c8-968e-68e0501d8ba7","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":4.23,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"b5d78626-12ea-41bd-9c41-1376f3b7aaf8","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":5.82,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"e928325e-9d21-493f-a5da-ce513ae5dd3b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":1.47,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"98eae68a-a829-4bf3-9d49-0aa5a27db0eb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":1.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"618c2848-975c-4f4d-923d-b7e158d3b44d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":1.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"5719a89d-2ca1-4cd2-9f5b-57a158e2a27c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":1.31,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"de1e62f1-57e4-4191-b7ec-9ce0964b42ee","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":1.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ae9819be-b176-4ca8-8b4d-d812e2d4a4a9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":1.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"6209d967-3ec9-49e0-8b3c-bec15a339e1f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":1.14,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"30ba6f8f-912d-415f-99c4-da83abb2f253","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:00:17","userId":null}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 14:00: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":null}
{"data":{"from":"/","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 14:00: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":null}
{"durationMs":1.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f22ffa69-84ce-4ff0-8270-d3886fa75ad1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":8.2,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"0c5487d5-06bd-44e2-bfbd-22c52c01ea5e","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 14:00:17","userId":null}
{"durationMs":41.78,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"ea46d4fc-74fc-4112-ac63-ee1bb4832f50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:00:23","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:04:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:05:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:05:00","totalConnections":1}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9b093ac-621b-4ad6-8ad5-2a6d34a2c45c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:10:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f31f1ed-181b-49a0-af62-6028c7599ee3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:10:02","userId":null}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7be28d5-b50d-4700-9d60-915e37f910f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:10:21","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:15:00","totalConnections":1}
{"durationMs":2.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ad467e2-e8e2-4ec5-9fb2-3535d1747908","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:20:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6dbfd085-ed06-4f92-8dea-cf2c154206eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:21:00"}
{"durationMs":3.19,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ecd4d409-8d2c-40c1-94c5-1b403cd9d919","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:21:26","userId":null}
{"durationMs":1.72,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ff953d71-5e76-4df0-98fb-c8e1dc6e2d21","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:21:26","userId":null}
{"body":{"refreshToken":"[REDACTED]"},"error":"Refresh token expired or revoked","ip":"102.0.11.44","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-16 14:21:27","url":"/api/v1/auth/refresh-token"}
{"durationMs":16.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"3e5330d5-c037-4b1a-b904-58c750307e23","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 14:21:27","userId":null}
{"durationMs":0.83,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa6d8b57-b7b5-490e-bc6a-52e2c61dd706","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:21:28","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:23:00"}
{"durationMs":2.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4df3f1c3-2900-4e2d-a3d2-20e38a927958","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:23:46","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8bc15a7a-410d-4f88-b399-4a339e594c1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:30:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"335f0980-3c51-4887-b3b8-f6a58c747f7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:34:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:35:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:35:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48ba08ef-f416-4c95-b8a0-793ea31abf2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:40:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07520541-fb5f-4acc-9590-cf4d0b98b1bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"681efce7-82e0-4661-89d1-16fe2d7409c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:49:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:50:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:50:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"514cef70-7591-4b49-8e4c-2f0c4f792069","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 14:55:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fc740ed-289f-4e40-b5ee-e6d7ff683d7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:00:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f72eb1f-c711-473e-8148-a911e38c1e4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:05:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4ba29a75-06dd-4cc3-b03b-60e88c7f36ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:10:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27cc3226-e902-4dfa-86c3-77091aa50bf3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:15:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5422a33c-4ca3-4525-ab15-1b13928c3675","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:20:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54f1c83c-9ef0-4bc8-ae2f-bce2d2ad999f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:25:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cea6b9a8-6ea9-441e-9f65-60783ae4e0cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:30:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7405e6d7-33fc-43e2-ab34-c9bda9d372ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:35:00","totalConnections":1}
{"durationMs":3.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1ad77fd-59ac-4dde-81c6-74b255f72b69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:40:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f07f4485-67a7-4b5c-9513-8023283cc275","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:43:00"}
{"durationMs":14.36,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"01c1f041-6f53-4b5f-bf32-c53ba1bf8bc5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:20","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":31,"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-16 15:43: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":1.02,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"916dfc81-0a05-42a2-8f8a-e5fdd11f5435","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:32","userId":null}
{"durationMs":918.71,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"738d28b7-76f8-4942-a0ac-bb39cb09bb57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:33","userId":null}
{"durationMs":67.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"cf02d381-4d36-4bd2-83dd-28144127f70d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.58,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8c6a0b4e-378f-4a32-8756-b74647164ec7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 15:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"34724b6c-ad07-4597-8f5e-6bba925459bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 15:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b93686ca-e1fa-46c6-ae27-300f78537c4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 15:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":433.86,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"731396c3-bbab-4a84-8e43-bbdbbb422c71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":493.33,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"98b7eb33-bcf1-47d3-99a3-46b09c072c78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 15:43:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":253.19,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"1aa834ff-8e33-4acc-89b5-863e6eeeddf1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":674.46,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"a27d01db-9a27-4fe5-85b2-b3064ead2dfd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":4098.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":436.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":603.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":605.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":77.07,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08301acf-8d8e-403b-ae31-81ab472d9ddd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"34984d22-c85c-4516-8ca1-194e2917a5ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":null}
{"durationMs":220.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"409ea603-4fd6-43cf-9d2e-14daf12ece94","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":700.54,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"9c4081ca-d8ff-4736-8b05-50dbc0fe4a8d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":250.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"bcf3748d-a92e-485e-b3c2-965bbcde378b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":300.48,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"65b9bac5-ecfa-44ee-9120-d36b1cfc8732","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":200.1,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"6a6976a7-2932-4bbd-97be-b5c40f4f11a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":377.29,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"84244783-3c8c-49af-a17a-e018fa0d0442","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":447.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"78697445-47eb-4975-bf1e-8044cb8f41d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":542.62,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"545ad6fa-9ce3-45a9-8af8-20c6aa0cedac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":421.96,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"3a1c587a-e08c-406d-b7b9-99c954bcb295","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":662.69,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"f96fd5e0-5ce4-46ea-9f9c-3ceafffbfaa0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":677.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/dashboard/stats"},"durationMs":1111.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/communication/notifications"},"durationMs":1322.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/school/mpesa-config"},"durationMs":1359.9,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/dashboard/revenue-trend"},"durationMs":1370.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/school/terms?isCurrent=true"},"durationMs":1294.6,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/dashboard/attendance-trend"},"durationMs":1440.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":23.75,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d7ff18a4-57a8-49ef-b172-49a5842dd660","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":6084.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/academics/grade-levels"},"durationMs":6095.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/academics/learning-areas"},"durationMs":6098.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/reports/dashboard"},"durationMs":6139.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/dashboard/recent-activities"},"durationMs":6285.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/dashboard/grade-distribution"},"durationMs":6330.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/communications/sms/settings"},"durationMs":6330.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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":"/communications/whatsapp/status"},"durationMs":6390.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 15:43: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.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cfc9878e-dcb8-4e9d-aa38-da869e75043d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:43:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:45:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba10f766-65c0-4bc5-9bba-d1048bfba05a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:50:00","totalConnections":1}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9586801c-73f3-459f-bcb8-3382e511e3ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 15:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 15:55:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"770da189-df10-4c4a-98dd-2618353d0b1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 16:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 16:00:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90d2b737-8931-4ca6-a3bb-bb0c68df5631","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 16:05:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"224a56cf-3858-49c6-b56e-f3c9848c355a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:08:00"}
{"durationMs":4.16,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0144611b-57da-48c2-a99a-4ffa6a4044f9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:08:33","userId":null}
{"durationMs":54.19,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"735a42e4-6076-42d8-85a6-a112ed6765e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:08:34","userId":null}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":8027,"event":"API_ERROR","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16: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":49.88,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7a308a97-aa1e-415e-b55f-fd511b4fc84a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:08:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.74,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"2c4851d1-99dd-41bb-9ffe-9e24a2e9257c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:08:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":3768.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:08: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":21.42,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c49ad6f4-fa7f-4c6c-b901-6524356b287e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:08:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:09:00"}
{"durationMs":1.87,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00af3295-c759-4f66-9349-54be97397c00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:09:46","userId":null}
{"durationMs":2.51,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"e3005aca-9e48-4394-aaaa-c713448107d5","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:09:48","userId":null}
{"durationMs":123.81,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b10a0717-1906-40c9-b740-f4fef1570012","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:09:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":393.98,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"146c9825-479e-45ef-b161-d899b1e3c9df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:09:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":449.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"737ec260-a004-4c29-9c9a-30462141739b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:09:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":389.59,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"0db380cc-cf53-4eb4-8ef0-b03f7ffd4ee3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:09:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":3685.7,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:09: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/unread-count"},"durationMs":3867.2,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:09: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":3933.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:09: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"},"durationMs":3936.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:09: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":23.14,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"51d126c7-53c5-4137-afab-066242ee346a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:09:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 16:10:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a6abd81-e752-4e44-af1b-5d7ce3b90e1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:10:01","userId":null}
{"durationMs":158.08,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"14b3af78-0b6b-4672-b0b2-743660bbe860","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:10:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":399.68,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"706bfec7-d813-40c7-9510-48c3ee58339d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:10:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":603.28,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"119de428-8b07-4d08-97a2-4f261204edc7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:10:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":566.9,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"006bf89e-29c6-4325-b70b-16a258ed37bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:10:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":604.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"ee1ae914-8f2b-4717-a44f-543e74dc2e2a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:10:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":564.17,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"975fe86e-c614-433b-b0b6-338e03fa5e1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:10:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":558.12,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"9bffaae5-0ace-4e38-b84f-06c1acc559ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:10:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":593.65,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"b8e78399-a570-4993-bf3f-dd462db79922","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:10:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":3692.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:10: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":"/dashboard/stats"},"durationMs":3716.5,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:10: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":"/dashboard/revenue-trend"},"durationMs":3722.1,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:10: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":"/dashboard/recent-activities"},"durationMs":3726.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:10: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":"/dashboard/attendance-trend"},"durationMs":3733.4,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:10: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":"/communications/whatsapp/status"},"durationMs":3743.8,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:10: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":"/communications/sms/settings"},"durationMs":3745.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:10: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":"/dashboard/grade-distribution"},"durationMs":5950.3,"event":"API_RESPONSE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:10: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":19.44,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aec3a02e-ba42-454e-9725-cd4d1b57f113","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:10:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 16:15:00","totalConnections":1}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80156709-0441-4944-8e67-ebf0ed51d9dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 16:20:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"117b9952-2d0d-465d-8c4d-e2626b996a05","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:24:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:25:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 16:25:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63c70ee0-6f87-4421-93c9-ad32f29a9691","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-16 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-16 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-16 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-16 16:30:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e3d2ea3-634a-4580-abd0-15766c7a4429","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-16 16:33:00"}
{"durationMs":1.97,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ede6b60d-be5d-4dfe-9def-c2e15c10edae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:12","userId":null}
{"durationMs":3.25,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"e4527295-5d21-4d6a-beed-8becbe30ac57","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:12","userId":null}
{"durationMs":14.43,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"cd262d69-df9b-44bb-b472-edae046ff959","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:12","userId":null}
{"durationMs":2.75,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3b5c0896-13a8-4431-bdbe-f6e3d5f38cf9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:12","userId":null}
{"durationMs":1.11,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"d415e826-813f-42d0-ba73-d65ab7f88d37","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:12","userId":null}
{"durationMs":1.05,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"fcf8b334-eba4-4517-9fad-a8f7275fa069","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:12","userId":null}
{"durationMs":1.06,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e13c8cdb-69ca-4dd1-9a09-a3b0e5682516","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:12","userId":null}
{"durationMs":3.89,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"b369e0b8-d483-4055-95f8-1c357a4d9afd","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:15","userId":null}
{"durationMs":4.6,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"b6cd75c9-c9b9-40f9-9c26-df41a2bad027","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:15","userId":null}
{"durationMs":5.34,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d0753bd0-bb5f-42fe-96cf-6309d1020f76","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:15","userId":null}
{"durationMs":5.83,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"f2cbacf8-6c6a-41ef-8d29-07f23c0244bb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:15","userId":null}
{"durationMs":6.36,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"daae22d0-69b9-4107-8c40-449c25198e82","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:15","userId":null}
{"durationMs":1.05,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"067fb08a-87dd-4024-9ecc-b19b4d683c24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:23","userId":null}
{"durationMs":3.72,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/uploads/general/2026/07/66991520-8397-4d23-a823-7101a0adb660.jpg","requestId":"0f65017e-dac9-4a78-a4f3-fdb4b4952341","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":1.41,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"04f26f17-fe71-4601-a419-a7d5fbc32d93","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":0.98,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"03291ddf-90c7-4ce5-9200-f5bc2522cbd2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":1.91,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"bf0df2b3-c719-4116-88c4-afbcd5462902","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":2.52,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cfb0d07c-0c12-48f7-99ba-1fbac105525b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":1.53,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b8acdbb9-cfc8-4f48-b7f0-133ef0e23c20","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":2.08,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"3068c93e-c8b3-42b9-b1f4-98d7d9ced96a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":3.02,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"97ee1a1a-b636-4c13-9698-abb24856d1c9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":2.05,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"5c06e074-056a-440d-82df-cede374a904a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":2.39,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"3211122a-def8-4e75-9676-4768752b67d7","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":0.92,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"d66e970f-cdd4-4935-9792-1ade6fa235e2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-16 16:33:24","userId":null}
{"durationMs":48.16,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"885d3ea8-63ca-4d6d-b844-f9b85ed8de45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:25","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":752.9,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":761.3,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/academics/years"},"durationMs":766.2,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":771.4,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/academics/streams"},"durationMs":772.5,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":782,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/academics/classes"},"durationMs":787,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/assessments/teacher-assignments"},"durationMs":810.9,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/academics/subjects"},"durationMs":813.1,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/assessments"},"durationMs":815.6,"event":"API_ERROR","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-16 16:33:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":3.2,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6e037f9-5521-4f21-9371-ed7755527f02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:26","userId":null}
{"durationMs":540.97,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"d6fed4d3-0678-49fd-8689-f35db0c0a0d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":557.95,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"8375c0e7-b00c-411d-abc7-314a71f63626","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":564.34,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"aca0fd1c-d9e2-4f0e-8602-034e0f7f7342","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":596.24,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"130e7371-aa83-4992-862d-647b68055c00","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":563.05,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b877b693-fc6a-45f4-9444-c1342e9cc608","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":739.91,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fe2825da-30eb-4f86-89a0-78498b238474","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":721.82,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"c33795d2-2b54-4983-b942-0878265509d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":757.05,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6f55306e-4ff7-467f-967e-c444da050282","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":747.97,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"1f3b2d59-a67c-497c-b59f-aaa2172a58f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":792.94,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"56d85a67-2225-4f3b-a4a8-a889bca0c920","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-16 16:33:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":147.15,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"b1c6d9a0-8e61-4c68-a01e-9f2139c5929a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:33:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":153.44,"ip":"154.159.237.194","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments?academicYearId=cmp8gtpm300d48bcnc9mas3i7&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"2a7f71ac-1cc2-4ce3-ba29-6f2db31a7f71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-16 16:33:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":2754.5,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":2793.9,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":2819.7,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":2936.9,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":2971.1,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":2976,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":2995.6,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":3003.5,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":3032.9,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) 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":3149,"event":"API_RESPONSE","ip":"154.159.237.194","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-16 16:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
